generated from hulk/gd32e23x_template_cmake_vscode
140 lines
4.3 KiB
C
140 lines
4.3 KiB
C
#ifndef BOARD_CONFIG_H
|
|
#define BOARD_CONFIG_H
|
|
|
|
#include "gd32e23x.h"
|
|
#include "stdbool.h"
|
|
|
|
#ifndef CFG_DISABLE
|
|
#define CFG_DISABLE 0
|
|
#endif
|
|
|
|
#ifndef CFG_ENABLE
|
|
#define CFG_ENABLE 1
|
|
#endif
|
|
|
|
#define GD32E23XF4 0x10
|
|
#define GD32E23XF6 0x20
|
|
#define GD32E23XF8 0x40
|
|
|
|
#define PROTOCOL_BOARD_TYPE 0x01 /**< 板卡类型标识 */
|
|
|
|
#include "version.h"
|
|
|
|
/* >>>>>>>>>>>>>>>>>>>>[IIC TYPE DEFINE]<<<<<<<<<<<<<<<<<<<< */
|
|
|
|
#define SOFTWARE_IIC CFG_DISABLE // CFG_DISABLE: Hardware IIC; CFG_ENABLE: Software IIC
|
|
|
|
/* >>>>>>>>>>>>>>>>>>>>[DEBUG MODE]<<<<<<<<<<<<<<<<<<<< */
|
|
|
|
#define DEBUG_MODE CFG_DISABLE // CFG_DISABLE: Release Mode; CFG_ENABLE: Debug Mode
|
|
|
|
/* >>>>>>>>>>>>>>>>>>>>[COMMAND DEBUG]<<<<<<<<<<<<<<<<<<<< */
|
|
|
|
#define COM_DEBUG CFG_DISABLE // CFG_DISABLE: Command debug off; CFG_ENABLE: Command debug on
|
|
|
|
/* >>>>>>>>>>>>>>>>>>>>[DEBUG ASSERTIONS DEFINE]<<<<<<<<<<<<<<<<<<<< */
|
|
|
|
#define DEBUG_VERBOSE CFG_DISABLE // CFG_DISABLE: Verbose debug off; CFG_ENABLE: Verbose debug on
|
|
|
|
/* >>>>>>>>>>>>>>>>>>>>[SEGGER RTT DETECTION]<<<<<<<<<<<<<<<<<<<< */
|
|
|
|
#define SEGGER_RTT_DETECTION CFG_ENABLE // CFG_DISABLE: SEGGER RTT off; CFG_ENABLE: SEGGER RTT on
|
|
|
|
#if SEGGER_RTT_DETECTION == CFG_ENABLE
|
|
#include "SEGGER_RTT.h"
|
|
#define RTT_printf(ch, ...) SEGGER_RTT_printf(ch, __VA_ARGS__)
|
|
#define RTT_WriteString(ch, s) SEGGER_RTT_WriteString(ch, s)
|
|
#define RTT_PutChar(ch, c) SEGGER_RTT_PutChar(ch, c)
|
|
#else
|
|
#define RTT_printf(ch, ...)
|
|
#define RTT_WriteString(ch, s)
|
|
#define RTT_PutChar(ch, c)
|
|
#endif
|
|
|
|
/******************************************************************************/
|
|
|
|
/* Dynamic USART Configuration Structure */
|
|
typedef struct {
|
|
uint32_t rcu_usart;
|
|
uint32_t usart_periph;
|
|
IRQn_Type irq_type;
|
|
void (*irq_handler)(void); // 函数指针:指向中断处理函数
|
|
} usart_config_t;
|
|
|
|
extern usart_config_t g_usart_config;
|
|
extern uint8_t g_mcu_flash_size;
|
|
|
|
/* USART中断处理函数声明 */
|
|
void usart0_irq_handler(void);
|
|
void usart1_irq_handler(void);
|
|
|
|
/******************************************************************************/
|
|
|
|
// #define RCU_GPIO_I2C RCU_GPIOF
|
|
// #define RCU_I2C RCU_I2C0
|
|
// #define I2C_SCL_PORT GPIOF
|
|
// #define I2C_SCL_PIN GPIO_PIN_1
|
|
// #define I2C_SDA_PORT GPIOF
|
|
// #define I2C_SDA_PIN GPIO_PIN_0
|
|
// #define I2C_GPIO_AF GPIO_AF_1
|
|
|
|
/******************************************************************************/
|
|
|
|
#define LED_RCU RCU_GPIOB
|
|
#define LED_PORT GPIOB
|
|
#define LED_PIN GPIO_PIN_1
|
|
|
|
/******************************************************************************/
|
|
|
|
typedef enum {
|
|
ACTUATOR_CH1 = 0,
|
|
ACTUATOR_CH2
|
|
} actuator_channel_t;
|
|
|
|
typedef enum {
|
|
DIRECTION_PUSH = 0, // 推动方向
|
|
DIRECTION_PULL // 拉动方向
|
|
} actuator_direction_t;
|
|
|
|
/******************************************************************************/
|
|
|
|
#define ACTUATOR_CH1_PWM_RCU RCU_GPIOA
|
|
#define ACTUATOR_CH1_PWM_PORT GPIOA
|
|
#define ACTUATOR_CH1_PWM_PIN GPIO_PIN_10
|
|
#define ACTUATOR_CH1_GPIO_RCU RCU_GPIOF
|
|
#define ACTUATOR_CH1_GPIO_PORT GPIOF
|
|
#define ACTUATOR_CH1_GPIO_PIN GPIO_PIN_0
|
|
|
|
#define ACTUATOR_CH2_PWM_RCU RCU_GPIOA
|
|
#define ACTUATOR_CH2_PWM_PORT GPIOA
|
|
#define ACTUATOR_CH2_PWM_PIN GPIO_PIN_9
|
|
#define ACTUATOR_CH2_GPIO_RCU RCU_GPIOF
|
|
#define ACTUATOR_CH2_GPIO_PORT GPIOF
|
|
#define ACTUATOR_CH2_GPIO_PIN GPIO_PIN_1
|
|
|
|
#define ACTUATOR_PWM_TIMER_RCU RCU_TIMER0
|
|
#define ACTUATOR_PWM_TIMER TIMER0
|
|
|
|
#define ACTUATOR_CH1_PWM_TIMER_CH TIMER_CH_2
|
|
#define ACTUATOR_CH2_PWM_TIMER_CH TIMER_CH_1
|
|
|
|
/******************************************************************************/
|
|
|
|
#define UART_RCU (g_usart_config.rcu_usart)
|
|
#define UART_PHY (g_usart_config.usart_periph)
|
|
#define UART_IRQ (g_usart_config.irq_type)
|
|
#define UART_GPIO_RCU RCU_GPIOA
|
|
#define UART_GPIO_PORT GPIOA
|
|
#define UART_TX_PIN GPIO_PIN_2
|
|
#define UART_RX_PIN GPIO_PIN_3
|
|
#define UART_BAUDRATE 115200U
|
|
|
|
/******************************************************************************/
|
|
|
|
#define DEBUG_UART USART0
|
|
|
|
void mcu_detect_and_config(void);
|
|
uint8_t get_flash_size(void);
|
|
|
|
#endif //BOARD_CONFIG_H
|