if(USART_Get_Receive_BUFR_Ready_Flag(USART2_SFR))
{
Receive_buff=USART_ReceiveData(USART2_SFR));
}
uint32_t strflags = _pUart->uart->STR;//str寄存器(串口状态)
uint32_t ierflags = _pUart->uart->IER;//ier寄存器(串口中断使能)
if ((strflags & USART_STR_RDRIF) != RESET)//串口接收中断RDRIF
{
/* 从串口接收数据寄存器读取数据存放到接收FIFO */
/*1.从RBUFR寄存器中读取接收到数据ch(注:从RBUFR读取数据会自动把接收中断标志RDRIF清零)*/
uint8_t ch;
ch = _pUart->uart->RBUFR;
/*2.把ch放入接收缓冲区*/
_pUart->pRxBuf[_pUart->usRxWrite] = ch;
第一个代码是例程里面的串口中断接收,第二个是你发的程序的中断接收。给我的感觉是两个程序应该功能一样才对,但是我用例程没有你发的程序的效果 |