}
这是啥意思
应该有哪些清楚标志位的语句 网上说的啥都有
你这个中断是不是有问题?
void KZ_USART_IRQHandler(void){ uint8_t temp; if(USART_GetITStatus(KZ_USARTxUSART_IT_RXNE)!=RESET) { temp = USART_ReceiveData(KZ_USARTx); USART4_BUFF[USART4_Num] = temp; USART_SendData(macUSARTxtemp); USART4_Num++; if(USART4_Num>=100) { USART4_Num = 0; } }}
进入中断先判断是哪个中断被响应了,毕竟很多中断是同一个中断函数
结束时需要清除中断标志(部分会自动清除标志),你的程序里没有写
这个ORE是个溢出标志位来的,出现这个标志,说明至少有一次数据丢失,这个标志位需要通过将DR寄存器里面的数据读走来清除,没有专门清除的语句
然后串口的DR寄存器是用来保存接收到的数据,RXNE是个是否有数据的标志位