你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
wenyangzeng 发表于 2018-9-19 15:17 那应该考虑接收中断如果发生溢出需要先读SR,再读DR寄存器 USART_ClearFlag(USART2,USART_FLAG_ORE); // ...
谁是谁的谁520 发表于 2018-9-19 15:34 串口一是与上位机通讯,,,串口2是接收模块数据,模块一直主动上传
wenyangzeng 发表于 2018-9-19 16:30 ST官方文档可以参考:
谁是谁的谁520 发表于 2018-9-19 16:54 现象如下,刚开始正常,后面发送没有回应,关闭串口,重新打开,又恢复正常,不过产品应该是重启过,数据 ...
查看全部评分
Your UAT Feedback is needed within today.
5.18活动板子会不会是STM32L4呢
STM32隐藏
STM32 CUBE软件中找不到STM32L4系列单片机
应用
AAA
测试测试12345
群
tiwen
BBBB
加了一个溢出中断判定,好像还是不行
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) != RESET)
{
Com1Recv.Buff[Com1Recv.Ptr++] = USART_ReceiveData(USART1);
if(Com1Recv.Ptr >= MAX_BYTES_COM_RECV) //溢出了,丢掉
{
Com1Recv.Ptr = 0;
}
}
if(USART_GetITStatus(USART1,USART_IT_ORE) != RESET)//接收一字节数据
{
USART_ClearFlag(USART1, USART_FLAG_ORE);
USART_ReceiveData(USART1);
}
}
ST官方文档可以参考:
现象如下,刚开始正常,后面发送没有回应,关闭串口,重新打开,又恢复正常,不过产品应该是重启过,数据恢复到0
问题已解决,原因是USART_GetFlagStatus和USART_GetITStatus,,,,,获取ORE标记,需用USART_GetFlagStatus,然后清0
评分
查看全部评分