初级会员

- 积分
- 75
- 金钱
- 75
- 注册时间
- 2015-12-16
- 在线时间
- 7 小时
|

楼主 |
发表于 2021-8-20 19:44:04
|
显示全部楼层
//我上位机发送 A5011A1A5A
如果按下面函数,通过串口工具打印都是0,理论上来说RXNE是接收一个字节就中断一次,然后我存在数组中,+1然后打印,结果发现都是0
void USART1_IRQHandler()
{
u8 i,data;
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET) //中断产生
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中断标志
res[t]=USART_ReceiveData(USART1);//接收
t++;
USART_SendData(USART1, res[t]);
}
}
如果按以下写我打印出来的就正常
void USART1_IRQHandler()
{
u8 i,data;
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET) //中断产生
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中断标志
res[0]=USART_ReceiveData(USART1);//接收
//t++;
USART_SendData(USART1, res[0]);
}
} |
|