OpenEdv-开源电子网

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

stm32f407,485通讯问题

[复制链接]

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
发表于 2017-11-30 14:12:00 | 显示全部楼层 |阅读模式
5金钱
485通讯方向脚变换方向时需要一个小延时才能正常发送,不然发送会出现一两个乱码。。之前没有这样的。换了一块板子出现的。
从电路上来看两个板子485都是一样的电路。。。。实在觉得奇怪!!有没有遇到过这种情况的?GPIO_SetBits(GPIOB,GPIO_Pin_0);
        //delay_ms(1);???????????
        {
          for(t=0;t<len;t++)               
        {
                USART_SendData(USART2,buf[t]);
          while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);                     
        }         

最佳答案

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

是的,会存在这个问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-11-30 14:12:01 | 显示全部楼层
是的,会存在这个问题
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-11-30 14:39:33 | 显示全部楼层
两块板子电路应用都是一样的,只有布局方面有些差异!
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-12-1 09:04:31 | 显示全部楼层
正点原子 发表于 2017-11-30 14:12
是的,会存在这个问题

暂时也没有什么好办法,只有加个小延时!
回复

使用道具 举报

头像被屏蔽

64

主题

233

帖子

0

精华

禁止访问

积分
603
金钱
603
注册时间
2017-11-13
在线时间
71 小时
发表于 2017-12-1 09:49:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-12-2 13:46:48 | 显示全部楼层
一直在路上1 发表于 2017-12-1 09:49
可能接收程序没处理好,是不是收到第1个数据,变成发送的第2个数据?
通讯协议上好好理下,容易解决的。我 ...


我加延时后数据单条发送正常,用串口10ms延时发送数据,接收正常,发送出来就有点乱码,就像数据移位
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-12-2 13:47:02 | 显示全部楼层
正点原子 发表于 2017-11-30 14:12
是的,会存在这个问题

我加延时后数据单条发送正常,用串口10ms延时发送数据,接收正常,发送出来就有点乱码,就像数据移位
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-12-2 13:48:54 | 显示全部楼层
串口10ms间隔发送全部都是05,05,05,05,板子接收到数据就发送给串口,串口接收到的
05 FD 56 AC B0 B0 C1 C1 05 05 05 05 05 05 05 05 FD 2B 56 58 B0 C1 C1 85 05 05 C5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 FD 2B 56 58 B0 C1 C1 05 05 05 05 05 85
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-8-5
在线时间
30 小时
发表于 2017-12-4 09:50:59 来自手机 | 显示全部楼层
用三极管搭一个去掉使能的电路
回复

使用道具 举报

1

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-12-19
在线时间
125 小时
发表于 2017-12-4 11:46:05 | 显示全部楼层
串口接收部分添加噪音检测试试。。485首发引脚引脚切换时可能会产生一个错误数据。
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2017-12-5 08:42:39 | 显示全部楼层
qiaobin123 发表于 2017-12-4 11:46
串口接收部分添加噪音检测试试。。485首发引脚引脚切换时可能会产生一个错误数据。

接收时没有问题的,发送出现的问题。我用调试工具发现,不管我发送什么数据,只要切换方向脚不延时,发送出来的数据前一两个字节就会乱码。。。
回复

使用道具 举报

1

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-12-19
在线时间
125 小时
发表于 2017-12-5 16:49:23 | 显示全部楼层
feiyang0725 发表于 2017-12-5 08:42
接收时没有问题的,发送出现的问题。我用调试工具发现,不管我发送什么数据,只要切换方向脚不延时,发送 ...

对啊,就是引脚切换时485芯片会产生一个错误数据发送出去,你可以切换引脚,但是不发送数据,看看调试工具会收到数据不?或者示波器抓一下看看
回复

使用道具 举报

1

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-12-19
在线时间
125 小时
发表于 2017-12-5 16:50:58 | 显示全部楼层
feiyang0725 发表于 2017-12-5 08:42
接收时没有问题的,发送出现的问题。我用调试工具发现,不管我发送什么数据,只要切换方向脚不延时,发送 ...

处理办法,接收的时候讲第一个错误的数据去掉,噪声检测应该时可以的,另外电路处理一下试试看。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-19 09:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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