153 lines
4.5 KiB
C
153 lines
4.5 KiB
C
/**
|
|
**************************************************************************
|
|
* @file at32f435_437_board.c
|
|
* @brief header file for at-start board. set of firmware functions to
|
|
* manage leds and push-button. initialize delay function.
|
|
**************************************************************************
|
|
* Copyright notice & Disclaimer
|
|
*
|
|
* The software Board Support Package (BSP) that is made available to
|
|
* download from Artery official website is the copyrighted work of Artery.
|
|
* Artery authorizes customers to use, copy, and distribute the BSP
|
|
* software and its related documentation for the purpose of design and
|
|
* development in conjunction with Artery microcontrollers. Use of the
|
|
* software is governed by this copyright notice and the following disclaimer.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED ON "AS IS" BASIS WITHOUT WARRANTIES,
|
|
* GUARANTEES OR REPRESENTATIONS OF ANY KIND. ARTERY EXPRESSLY DISCLAIMS,
|
|
* TO THE FULLEST EXTENT PERMITTED BY LAW, ALL EXPRESS, IMPLIED OR
|
|
* STATUTORY OR OTHER WARRANTIES, GUARANTEES OR REPRESENTATIONS,
|
|
* INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
|
|
*
|
|
**************************************************************************
|
|
*/
|
|
|
|
#ifndef __AT32F435_437_BOARD_H
|
|
#define __AT32F435_437_BOARD_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "stdio.h"
|
|
#include "at32f435_437.h"
|
|
|
|
/** @addtogroup AT32F435_437_board
|
|
* @{
|
|
*/
|
|
|
|
/** @addtogroup BOARD
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup BOARD_pins_definition
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* this header include define support list:
|
|
* 1. at-start-f435 v1.x board
|
|
* 2. at-start-f437 v1.x board
|
|
* if define AT_START_F435_V1, the header file support at-start-f437 v1.x board
|
|
* if define AT_START_F437_V1, the header file support at-start-f437 v1.x board
|
|
*/
|
|
|
|
#if !defined (AT_START_F435_V1) && !defined (AT_START_F437_V1)
|
|
#error "please select first the board at-start device used in your application (in at32f435_437_board.h file)"
|
|
#endif
|
|
|
|
/******************** define led ********************/
|
|
typedef enum
|
|
{
|
|
LED2 = 0,
|
|
LED3 = 1,
|
|
LED4 = 2
|
|
}led_type;
|
|
|
|
#define LED_NUM 3
|
|
|
|
#if defined (AT_START_F435_V1) || defined (AT_START_F437_V1)
|
|
#define LED2_PIN GPIO_PINS_13
|
|
#define LED2_GPIO GPIOD
|
|
#define LED2_GPIO_CRM_CLK CRM_GPIOD_PERIPH_CLOCK
|
|
|
|
#define LED3_PIN GPIO_PINS_14
|
|
#define LED3_GPIO GPIOD
|
|
#define LED3_GPIO_CRM_CLK CRM_GPIOD_PERIPH_CLOCK
|
|
|
|
#define LED4_PIN GPIO_PINS_15
|
|
#define LED4_GPIO GPIOD
|
|
#define LED4_GPIO_CRM_CLK CRM_GPIOD_PERIPH_CLOCK
|
|
#endif
|
|
|
|
/**************** define print uart ******************/
|
|
#define PRINT_UART USART1
|
|
#define PRINT_UART_CRM_CLK CRM_USART1_PERIPH_CLOCK
|
|
#define PRINT_UART_TX_PIN GPIO_PINS_9
|
|
#define PRINT_UART_TX_GPIO GPIOA
|
|
#define PRINT_UART_TX_GPIO_CRM_CLK CRM_GPIOA_PERIPH_CLOCK
|
|
#define PRINT_UART_TX_PIN_SOURCE GPIO_PINS_SOURCE9
|
|
#define PRINT_UART_TX_PIN_MUX_NUM GPIO_MUX_7
|
|
|
|
/******************* define button *******************/
|
|
typedef enum
|
|
{
|
|
USER_BUTTON = 0,
|
|
NO_BUTTON = 1
|
|
} button_type;
|
|
|
|
#define USER_BUTTON_PIN GPIO_PINS_0
|
|
#define USER_BUTTON_PORT GPIOA
|
|
#define USER_BUTTON_CRM_CLK CRM_GPIOA_PERIPH_CLOCK
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup BOARD_exported_functions
|
|
* @{
|
|
*/
|
|
|
|
/******************** functions ********************/
|
|
void at32_board_init(void);
|
|
|
|
/* led operation function */
|
|
void at32_led_init(led_type led);
|
|
void at32_led_on(led_type led);
|
|
void at32_led_off(led_type led);
|
|
void at32_led_toggle(led_type led);
|
|
|
|
/* button operation function */
|
|
void at32_button_init(void);
|
|
button_type at32_button_press(void);
|
|
uint8_t at32_button_state(void);
|
|
|
|
/* delay function */
|
|
void delay_init(void);
|
|
void delay_us(uint32_t nus);
|
|
void delay_ms(uint16_t nms);
|
|
void delay_sec(uint16_t sec);
|
|
|
|
/* printf uart init function */
|
|
void uart_print_init(uint32_t baudrate);
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|