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;
}
}
|