你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051串口(232)死机

[复制链接]
zhy233090130 提问时间:2019-9-5 22:01 /
STM32F051串口1波特率配置成9600bits/s,将USB转232串口工具波特率设置成9600bits/s发命令时,MCU正常返回数值;将USB转232串口工具波特率设置成其他值如38400bits/s发命令时,MCU串口会死机,必须复位重启后串口才正常,不知道是何问题,请大神们指点?
收藏 评论6 发布时间:2019-9-5 22:01

举报

6个回答
yklstudent 回答时间:2019-9-6 09:08:06
仿真看看死哪里就知道什么问题了
wenyangzeng 回答时间:2019-9-6 06:55:40
串口工具的波特率改成38400,STM32F051的波特率也要改成相同波特率。改完后当然要重启初始化串口才能生效。
zhy233090130 回答时间:2019-9-6 08:20:28
wenyangzeng 发表于 2019-9-6 06:55
串口工具的波特率改成38400,STM32F051的波特率也要改成相同波特率。改完后当然要重启初始化串口才能生效。 ...

STM32F051串口的波特率必须是9600,我想表达的意思是如果串口工具的波特率不是9600,这时串口工具给STM32F051发命令时会造成MCU的串口死掉,必须复位或重新初始化串口才能恢复,一般来讲任何波特率发过来的数据MCU接收会是乱码但不会造成MCU串口死机,我这边遇到的情况就会造成MCU串口死机
哀歌与世无争 回答时间:2019-9-6 08:41:37
zhy233090130 发表于 2019-9-6 08:20
STM32F051串口的波特率必须是9600,我想表达的意思是如果串口工具的波特率不是9600,这时串口工具给STM32 ...

正常是不会死机的,可能接收处理的代码有问题
mylovemcu 回答时间:2019-9-6 10:24:14
提高波特率一般不会出现问题,现在出现死机情况可能是你程序的问题
检查一下中断函数,是不是中断函数中处理了太多事情,因为38400比9600快了不少,如果在中断里做了很多事情,会导致当前事件还没处理完,下一次中断又来了,这种情况就会导致程序死机
wudianjun2001 回答时间:2019-9-6 15:02:17
程序处理的不好,建议一帧数据有完整的结构,包头包尾校验什么的,接收到包头才接收下面的数据,超时什么的都要处理好
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版