20231023_InSituLab_emb/InsituLabProject_QRS/Src/Usr/Bsp/McuBspUart.h
Rjh913828050 4e26d518da 类型:更细
内容:更新十四五程序
人员:任家豪
2024-07-31 08:56:07 +08:00

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