OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2705|回复: 3

mini板的串口2出现丢失数据情况,求解

[复制链接]

4

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2015-9-16
在线时间
94 小时
发表于 2015-11-26 17:13:40 | 显示全部楼层 |阅读模式
5金钱
如题,在例程中使用的时钟频率时72M,设置串口2波特率为115200,此时测试正常。现在将主频降到32M,串口2的波特率依然设置为115200,在仿真时发现发送的命令字节会少接收1byte(一帧共有15byte,接收到14byte),该情况也是偶尔出现一次。对此甚是不解,难道是因为波特率设定得太高了吗?
接收中断如下:
if (USART_GetITStatus(USARTx,USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USARTx,USART_IT_RXNE);
EnQueue(&Queue,USART_ReceiveData(USARTx));         
}
其中usartx已经指定为usart2。现在不知道是因为波特率太高,还是因为降频后串口时钟与波特率不匹配之类的,请大家不吝赐教,在此感谢了。

最佳答案

查看完整内容[请看2#楼]

波特率降低是否就没有问题了,使用外部晶振吗?可以看下STM32说明书确认下波特率的精度。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2015-11-26 17:13:41 | 显示全部楼层
波特率降低是否就没有问题了,使用外部晶振吗?可以看下STM32说明书确认下波特率的精度。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复

使用道具 举报

4

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2015-9-16
在线时间
94 小时
 楼主| 发表于 2015-11-26 17:44:23 | 显示全部楼层
回复【2楼】ST-FAE-SALE:
---------------------------------
谢谢回复。
我是使用外部晶振,更改HCLK为32M的。PCLK1也是32M。刚才算了下,115200误差大一些,正在测试9600是否出现该问题。
回复

使用道具 举报

4

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2015-9-16
在线时间
94 小时
 楼主| 发表于 2015-11-27 13:33:47 | 显示全部楼层
回复【2楼】ST-FAE-SALE:
---------------------------------
经过测试,确实是因为波特率的原因导致的,目前使用9600完全正常。
从这件事可以知道:如果更改了频率,需要计算当前使用的波特率精度是否达到要求,否则最好更换波特率。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-17 06:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表