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

STM32F0串口接收最高位总是0

[复制链接]
everkimage 提问时间:2018-6-6 17:10 /
先说明是老程序了,之前没问题,一直在用。今天突然接收最高位总是0,比如发0xFF会收到0x7F,按照串口发送顺序,就是最后一位(停止位前)总是读到0。串口配置是8位数据、1位停止位、无奇偶校验、无流控制。
刚才我用官方库里面的代码跑了以下,可以收到完整数据。

请问下各位大神,这大概是怎么个问题?
收藏 评论8 发布时间:2018-6-6 17:10

举报

8个回答
七哥 回答时间:2018-6-6 18:09:14
一切以波形说话。
用你的STM32F0往出发数据,0x55、0xaa、0x5a、0xa5,示波器看一下波形。对比一下接收和发送的波形有什么不同,位数和波特率。

你接收发现的问题,同样可以在发送上反映出来。

另外,你是用什么给STM32F0发的数据?
之前遇到过USB转232线不靠谱问题,当发单字节的时候没问题,当连续发头0xff的时候,就会有问题,观察波形发现是连续发送后,USB转232线的波形出问题了。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

疯de_恒 回答时间:2018-6-6 17:13:05
你程序设置为7 bit工作模式?看看波形怎么样吧。看看波形对不对?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-6-6 17:57:42
应该是系统时钟频率出现偏差了。硬件问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

anobodykey 回答时间:2018-6-6 18:01:47
看数据图是不是对的,检查时钟是否正确配置

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

中山无雪 回答时间:2018-6-6 19:11:33
不像硬件问题,估计还是设置问题

看看原先用的MCU和现在的新品是不是有什麽改动(是不是厂家版本升级了,在这方面做了改正)

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wudianjun2001 回答时间:2018-6-7 08:37:46
先检查硬件,换块板子看看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

废鱼 回答时间:2018-6-7 08:41:22
从现象来看,应该是串口的配置不匹配导致。看一下源码中串口的配置。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

everkimage 回答时间:2018-6-7 09:30:06
本帖最后由 everkimage 于 2018-6-7 10:54 编辑

昨晚找了好久,发现是接收中断数据接收后与了下0x7F,不知道当初是怎么想的,可能是作测试忘了删掉了。对不起大家,浪费大家时间。非常感谢你们。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结帖奖励,解决就好

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版