OpenEdv-开源电子网

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

用串口4(UART4)做RS485通信,上电时会发乱码

[复制链接]

22

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2013-12-19
在线时间
111 小时
发表于 2015-3-25 10:31:43 | 显示全部楼层 |阅读模式
5金钱
我用自己做的板子和战舰开发板进行485通信,STM32芯片和战舰的是相同型号的,485芯片也是SP3485。用我的板子给战舰发数据,战舰收到数据后通过串口1打印到电脑的串口调试助手。先给战舰上电,让它处于接收状态。再给我的板子上电,此时战舰就会收到误码。

我板子的程序1如图:

,误码1如图:

。第一个“0”是在我板子上电的瞬间,战舰就会收到。只有第一个“0”是误码。

然后我把自己板子的程序2清空:

,误码2如图:

。这些都是误码,以“0”居多,也会穿插除“0”以外的误码,不一定是255。

还有就是当我把程序1的485初始化语句放到延时语句的后面,程序3:

,也会出现类似误码2的情况,即收到以“0”为主的多个误码。



然后我用战舰给我的板子发数据,我的板子收到数据后打印到电脑上,这时都是正常的。
我有几个猜测:1、是STM32串口4引脚固有的缺陷,在上电后就会出现电压波动;2、STM32芯片质量问题;3、SP3485芯片质量问题。
不知你们有没有遇到过这些情况,或给点意见。

最佳答案

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

这种现象很正常,有时上拉电阻并不能解决。 所以,接收方的解释程序就很重要,要能够容错。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11558
金钱
11558
注册时间
2014-4-1
在线时间
1318 小时
发表于 2015-3-25 10:31:44 | 显示全部楼层
这种现象很正常,有时上拉电阻并不能解决。

所以,接收方的解释程序就很重要,要能够容错。
回复

使用道具 举报

22

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2013-12-19
在线时间
111 小时
 楼主| 发表于 2015-3-25 15:59:10 | 显示全部楼层
在网上查了一下,说是在TX端加上拉电阻。


我加了一个10K的上拉电阻,果然解决了。
回复

使用道具 举报

43

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1074
金钱
1074
注册时间
2012-1-10
在线时间
238 小时
发表于 2015-3-25 17:41:41 | 显示全部楼层
问题出在SP3485芯片的2和3脚的电平控制方式上,如果单片机直接连接SP3485的2脚和3脚上,那么上电时单片机IO输出“1”或者“不定”时,SP3485控制脚为发送模式,那么A和B线上就有数据发送。当程序使能IO=0,控制为接收时,数据已经发送输出了。解决方法是在单片机IO和sp3485之间增加一个NPN的二极管取反电平信号,保证上电到IO初始化完成时SP3485始终处于接收状态。
回复

使用道具 举报

22

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2013-12-19
在线时间
111 小时
 楼主| 发表于 2015-3-25 20:57:54 | 显示全部楼层
回复【4楼】magicoctoy:
---------------------------------
那感觉只加个下拉电阻也可以,有空试试。
回复

使用道具 举报

69

主题

269

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2014-7-4
在线时间
237 小时
发表于 2015-3-25 21:30:25 | 显示全部楼层
可否把串口4的配置代码共享下,库函数的
回复

使用道具 举报

22

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2013-12-19
在线时间
111 小时
 楼主| 发表于 2015-3-25 22:24:22 | 显示全部楼层
回复【6楼】freewayflyer:
---------------------------------
我不会库函数额。这个误码应该是在刚上电时产生的,如果上电后及时配置了连接SP3485的3个引脚,那只会发出一个误码,如果不及时配置这3个引脚,会发出约6——12个误码。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 12:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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