OpenEdv-开源电子网

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

STM32F4软件复位后串口第一位丢失或者乱码

[复制链接]

20

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2012-10-23
在线时间
9 小时
发表于 2014-7-24 14:01:08 | 显示全部楼层 |阅读模式
5金钱
使用STM32F405时串口的第一位会丢失,后来发现网上很多朋友遇到过,基本都是添加while ((USART1->SR & 0x40) == 0);或者读USART1->SR可以解决。我在F1上面试过可行,波特率为923076。后来使用STM32F405,波特率在3000000,也是第一位丢失,读SR后硬件复位第一位是正常的,但是使用软件复位后第一位又不正常了,不是丢失就是乱码,以后的都是正常的。波特率降到115200时软件复位也正常,试过923076、2000000、3000000时都是硬件复位正常,软件复位不正常,但是除了第一位以外以后发的数据全是正确的。请教一下有没有在维持3000000波特率情况下使用软件复位也正常的方法?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-24 23:30:02 | 显示全部楼层
没搞这么高波特率.
你怎么要用这么高的波特率啊?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

20

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2012-10-23
在线时间
9 小时
 楼主| 发表于 2014-7-25 12:23:54 | 显示全部楼层
做数据采集的,使用printf发数据,需要1K的的发送频率,只能使用最高波特率了。如果直接发16进制不用printf会快很多,但是上位机里面需要做数据处理。上位机自己做的,只是第一次做不太熟练,使用printf能使上位机简单一点。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-25 23:29:24 | 显示全部楼层
回复【3楼】天才少年:
---------------------------------
额,这样波特率太高了.容易出错哦.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

20

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2012-10-23
在线时间
9 小时
 楼主| 发表于 2014-7-27 10:49:38 | 显示全部楼层
测试了很多数据,后面的都不会错,我还是先发几个空格吧。
回复

使用道具 举报

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
发表于 2014-7-27 22:30:10 | 显示全部楼层
回复【5楼】天才少年:
---------------------------------
尝试软复位后延时等待复位寄存器置位
光圈电子科技 晓航 多多 啾儿 实验室
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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