新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2021-9-23
- 在线时间
- 7 小时
|
1金钱
void USART1_IRQHandler()
{
u8 date;
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
date=USART_ReceiveData(USART1);
USART_SendData(USART1,date);
}
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
}
这样写可以正常发送接收到的数据
void USART1_IRQHandler()
{
u8 date;
date=USART_ReceiveData(USART1);
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
USART_SendData(USART1,date);
}
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
}
这样写不能正常显示接受的数据是为什么呢
|
最佳答案
查看完整内容[请看2#楼]
好像 USART_ReceiveData 这个函数读取接收到的数据后 硬件会自动清除USART_IT_RXNE这个中断。 所以你下方的判断进不去
|