194 lines
8.0 KiB
C
194 lines
8.0 KiB
C
#ifndef _MCU_BSP_UART_H_
|
|
#define _MCU_BSP_UART_H_
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
#include <cpu.h>
|
|
#include <os.h>
|
|
#include <os_cpu.h>
|
|
#include <bsp_int.h>
|
|
#include <bsp_sys.h>
|
|
#include <lib_def.h>
|
|
|
|
#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
|