#ifndef _MCU_BSP_UART_H_ #define _MCU_BSP_UART_H_ #include #include #include #include #include #include #include #include #include #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/sysctl.h" #include "driverlib/uart.h" #include "driverlib/interrupt.h" #include "inc/hw_memmap.h" #include "inc/hw_ints.h" /* 用户串口回调函数定义 */ typedef void (*UART_SEND_CALLBACK)(void); // 暂未使用 typedef void (*UART_RECV_CALLBACK)(unsigned char); /* 最大串口数 */ #define MCU_BSP_UART_ALL_NUM 8 /* 串口类型 */ #define MCU_BSP_UART_TTL_TYPE 0 #define MCU_BSP_UART_RS232_TYPE 1 #define MCU_BSP_UART_RS485_TYPE 2 #define MCU_BSP_UART_OFF 0 #define MCU_BSP_UART_ON 1 #define MCU_BSP_UART_BUSY 1 #define MCU_BSP_UART_NOBUSY 0 /* 常用波特率定义 */ #define MCU_BSP_UART_BANDRATE_4800 4800 #define MCU_BSP_UART_BANDRATE_9600 9600 #define MCU_BSP_UART_BANDRATE_14400 14400 #define MCU_BSP_UART_BANDRATE_19200 19200 #define MCU_BSP_UART_BANDRATE_38400 38400 #define MCU_BSP_UART_BANDRATE_56000 56000 #define MCU_BSP_UART_BANDRATE_57600 57600 #define MCU_BSP_UART_BANDRATE_115200 115200 /* 传输字长 */ #define MCU_BSP_UART_DATABIT_5 5 #define MCU_BSP_UART_DATABIT_6 6 #define MCU_BSP_UART_DATABIT_7 7 #define MCU_BSP_UART_DATABIT_8 8 /* 停止位长度 */ #define MCU_BSP_UART_STOPBIT_ONE 1 #define MCU_BSP_UART_STOPBIT_TWO 2 /* 校验位 */ #define MCU_BSP_UART_CHECKBIT_NONE 0 #define MCU_BSP_UART_CHECKBIT_EVEN 1 #define MCU_BSP_UART_CHECKBIT_ODD 2 /* 串口的硬件配置 */ #define MCU_BSP_UART0 0 #define MCU_BSP_UART0_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART0_RX_GPIO_CONF GPIO_PA0_U0RX #define MCU_BSP_UART0_RX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART0_RX_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_UART0_RX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART0_TX_GPIO_CONF GPIO_PA1_U0TX #define MCU_BSP_UART0_TX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART0_TX_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_UART0_TX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART0_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART0_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART0_RS485_CTRL_GPIO_PIN GPIO_PIN_1 /*****************************************************************/ #define MCU_BSP_UART1 1 #define MCU_BSP_UART1_MODE MCU_BSP_UART_RS485_TYPE #define MCU_BSP_UART1_RX_GPIO_CONF GPIO_PB0_U1RX #define MCU_BSP_UART1_RX_GPIO GPIO_PORTB_BASE #define MCU_BSP_UART1_RX_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_UART1_RX_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_UART1_TX_GPIO_CONF GPIO_PB1_U1TX #define MCU_BSP_UART1_TX_GPIO GPIO_PORTB_BASE #define MCU_BSP_UART1_TX_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_UART1_TX_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_UART1_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOL #define MCU_BSP_UART1_RS485_CTRL_GPIO GPIO_PORTL_BASE #define MCU_BSP_UART1_RS485_CTRL_GPIO_PIN GPIO_PIN_0 /*****************************************************************/ #define MCU_BSP_UART2 2 #define MCU_BSP_UART2_MODE MCU_BSP_UART_RS485_TYPE #define MCU_BSP_UART2_RX_GPIO_CONF GPIO_PA6_U2RX #define MCU_BSP_UART2_RX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART2_RX_GPIO_PIN GPIO_PIN_6 #define MCU_BSP_UART2_RX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART2_TX_GPIO_CONF GPIO_PA7_U2TX #define MCU_BSP_UART2_TX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART2_TX_GPIO_PIN GPIO_PIN_7 #define MCU_BSP_UART2_TX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART2_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOF #define MCU_BSP_UART2_RS485_CTRL_GPIO GPIO_PORTF_BASE #define MCU_BSP_UART2_RS485_CTRL_GPIO_PIN GPIO_PIN_4 /*****************************************************************/ #define MCU_BSP_UART3 3 #define MCU_BSP_UART3_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART3_RX_GPIO_CONF GPIO_PA4_U3RX #define MCU_BSP_UART3_RX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART3_RX_GPIO_PIN GPIO_PIN_4 #define MCU_BSP_UART3_RX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART3_TX_GPIO_CONF GPIO_PA5_U3TX #define MCU_BSP_UART3_TX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART3_TX_GPIO_PIN GPIO_PIN_5 #define MCU_BSP_UART3_TX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART3_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART3_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART3_RS485_CTRL_GPIO_PIN GPIO_PIN_1 /*****************************************************************/ #define MCU_BSP_UART4 4 #define MCU_BSP_UART4_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART4_RX_GPIO_CONF GPIO_PA2_U4RX #define MCU_BSP_UART4_RX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART4_RX_GPIO_PIN GPIO_PIN_2 #define MCU_BSP_UART4_RX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART4_TX_GPIO_CONF GPIO_PA3_U4TX #define MCU_BSP_UART4_TX_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART4_TX_GPIO_PIN GPIO_PIN_3 #define MCU_BSP_UART4_TX_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART4_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART4_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART4_RS485_CTRL_GPIO_PIN GPIO_PIN_1 /*****************************************************************/ #define MCU_BSP_UART5 5 #define MCU_BSP_UART5_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART5_RX_GPIO_CONF GPIO_PC6_U5RX #define MCU_BSP_UART5_RX_GPIO GPIO_PORTC_BASE #define MCU_BSP_UART5_RX_GPIO_PIN GPIO_PIN_6 #define MCU_BSP_UART5_RX_GPIO_CLK SYSCTL_PERIPH_GPIOC #define MCU_BSP_UART5_TX_GPIO_CONF GPIO_PC7_U5TX #define MCU_BSP_UART5_TX_GPIO GPIO_PORTC_BASE #define MCU_BSP_UART5_TX_GPIO_PIN GPIO_PIN_7 #define MCU_BSP_UART5_TX_GPIO_CLK SYSCTL_PERIPH_GPIOC #define MCU_BSP_UART5_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART5_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART5_RS485_CTRL_GPIO_PIN GPIO_PIN_1 /*****************************************************************/ #define MCU_BSP_UART6 6 #define MCU_BSP_UART6_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART6_RX_GPIO_CONF GPIO_PP0_U6RX #define MCU_BSP_UART6_RX_GPIO GPIO_PORTP_BASE #define MCU_BSP_UART6_RX_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_UART6_RX_GPIO_CLK SYSCTL_PERIPH_GPIOP #define MCU_BSP_UART6_TX_GPIO_CONF GPIO_PP1_U6TX #define MCU_BSP_UART6_TX_GPIO GPIO_PORTP_BASE #define MCU_BSP_UART6_TX_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_UART6_TX_GPIO_CLK SYSCTL_PERIPH_GPIOP #define MCU_BSP_UART6_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART6_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART6_RS485_CTRL_GPIO_PIN GPIO_PIN_1 /*****************************************************************/ #define MCU_BSP_UART7 7 #define MCU_BSP_UART7_MODE MCU_BSP_UART_RS232_TYPE #define MCU_BSP_UART7_RX_GPIO_CONF GPIO_PC4_U7RX #define MCU_BSP_UART7_RX_GPIO GPIO_PORTC_BASE #define MCU_BSP_UART7_RX_GPIO_PIN GPIO_PIN_4 #define MCU_BSP_UART7_RX_GPIO_CLK SYSCTL_PERIPH_GPIOC #define MCU_BSP_UART7_TX_GPIO_CONF GPIO_PC5_U7TX #define MCU_BSP_UART7_TX_GPIO GPIO_PORTC_BASE #define MCU_BSP_UART7_TX_GPIO_PIN GPIO_PIN_5 #define MCU_BSP_UART7_TX_GPIO_CLK SYSCTL_PERIPH_GPIOC #define MCU_BSP_UART7_RS485_CTRL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_UART7_RS485_CTRL_GPIO GPIO_PORTA_BASE #define MCU_BSP_UART7_RS485_CTRL_GPIO_PIN GPIO_PIN_1 int McuBspUartInit(uint8_t UartId, uint32_t BandRate, uint32_t DataBit, uint32_t StopBit, uint32_t CheckBit); int McuBspUartSendData(uint8_t UartId, uint8_t *Data, uint32_t DataLen); int McuBspUartStartRecv(uint8_t UartId, UART_RECV_CALLBACK RecvCallback); int McuBspUartEndRecv(uint8_t UartId); int McuBspUartModifyConf(uint8_t UartId, uint32_t BandRate, uint32_t DataBit, uint32_t StopBit, uint32_t CheckBit); #endif