2.在APP分组中新建bsp_uart.c和bsp_uart.h文件,该文件实现了对对串口1数据的发送与接收操作。 bsp_uart.c代码如下: - #include "bsp_uart.h"
- UINT8 RxBuff[100];
- UINT8 trigB;
- //串口1初始化函数
- void uart_module_init(void)
- {
- GPIOA_SetBits(GPIO_Pin_9);
- GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
- GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
- UART1_DefInit();
- UART1_BaudRateCfg(115200);
- R8_UART1_FCR = (2<<6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN;
- R8_UART1_LCR = RB_LCR_WORD_SZ;
- R8_UART1_IER = RB_IER_TXD_EN;
- R8_UART1_DIV = 1;
- UART1_ByteTrigCfg( UART_7BYTE_TRIG );
- trigB = 7;
- UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
- NVIC_EnableIRQ( UART1_IRQn );
-
- }
- //串口1接收中断函数
- void UART1_IRQHandler(void)
- {
- UINT8 i;
- switch( UART1_GetITFlag() )
- {
- case UART_II_LINE_STAT:
- UART1_GetLinSTA();
- break;
- case UART_II_RECV_RDY:
- for(i=0; i!=trigB; i++)
- {
- RxBuff[i] = UART1_RecvByte();
- UART1_SendByte(RxBuff[i]);
- }
- break;
-
- case UART_II_RECV_TOUT:
- i = UART1_RecvString(RxBuff);
- UART1_SendString( RxBuff, i );
- break;
-
- case UART_II_THR_EMPTY:
- break;
-
- case UART_II_MODEM_CHG:
- break;
-
- default:
- break;
- }
- }
|