OpenEdv-开源电子网

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

串口的MODBUS RTU通信协议。

[复制链接]

24

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-5-16
在线时间
0 小时
发表于 2014-4-5 17:58:40 | 显示全部楼层 |阅读模式

大家好,
     我买了个传感器,它是5V电源,串口232通信,TTL接口,而且是用MODBUS RTU通信协议。
我用STM32的串口转485,再用无源转换头485转232,直接接到传感器里面去。传感器供电也从STM32的板上引过去的。
但通信不上。我发了一帧数据   :01 03 00 00 00 01 84 0A, 本来可以收回,7个8位的数据。但一个也没有收到。


为什么????


我在电脑了,通信成功。也读到了数据。用串口调试软件发送数据: 01 03 00 00 00 01 84 0A 。就可以收到数据。
但用STM32不行。别人说:是TTL接口要转换,不能和STM32直接通信,因为STM32是3.3V的。












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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-5 19:22:46 | 显示全部楼层
回复【楼主位】阿鼠:
---------------------------------
如果你的传感器是232/TTL串口,那么你可以设置为TTL串口,然后直接连接STM32的串口,就可以了。
你不需要经过485,再去转来转去的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

24

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2014-4-6 10:55:26 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥。

之前看到你的招人,我也在广州。想过去。但知道自己的水平不行,还要再学习一年先。呵呵。明年招人,我就过去试试看。
回复 支持 反对

使用道具 举报

24

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2014-4-6 11:00:16 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我这个昨晚搞定了。通信上了。我用光耦隔开,一边3。3V,STM32用。一边是传感器用的5V。直接用串口通信。

非常感谢。
回复 支持 反对

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-4-1
在线时间
0 小时
发表于 2014-4-6 18:23:52 | 显示全部楼层
回复【楼主位】阿鼠:
---------------------------------
能不能看看你的modbus协议的程序!
回复 支持 反对

使用道具 举报

24

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2014-4-7 13:16:23 | 显示全部楼层
回复【5楼】dengyang09:
---------------------------------
不在我这台电脑上。但我可以告诉你思路。
(下面是我的传感器的发送和收到数据的个数,具体是要发几个数据,和收到几个数据。要看买回来产品的协议要求。)

就是用串口发一帧数据   如:01 03 00 00 00 01 84 0A。串口一次只能发一个字节,所以,我就发送了8次,才把这一帧数据发完。
接着,我就开始回收数据。因为我的传感器是收回7个数据。所以,我就用串口回收7次。一次只能回一个字节。

最后,程序上校验收来的7个数据有没有错?最后的两个字节是CRC16的校验码。如果没错,就取出中间的第3,4个数据(我实际要用的数据。)
回复 支持 反对

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-4-1
在线时间
0 小时
发表于 2014-4-8 14:40:25 | 显示全部楼层
回复【6楼】阿鼠:
---------------------------------
我也试一下,谢啦
回复 支持 反对

使用道具 举报

24

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2014-4-9 08:54:24 | 显示全部楼层
回复【7楼】dengyang09:
--------------------------------
不客气。
回复 支持 反对

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-4-1
在线时间
0 小时
发表于 2014-4-10 21:01:56 | 显示全部楼层
回复【8楼】阿鼠:
---------------------------------
请问一下在rtu模式下,你在程序中是怎样找出每一帧的起始位。在rtu模式中起始位是3.5个字符的延时,我该怎么去实现?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-10 23:13:47 | 显示全部楼层
回复【3楼】阿鼠:
---------------------------------
好啊,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2013-10-17
在线时间
1 小时
发表于 2014-5-7 21:32:09 | 显示全部楼层
回复【6楼】阿鼠:
---------------------------------
l楼主你的modbus协议的程序  能不能给我参考啊  感激涕零啊
回复 支持 反对

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-8-5
在线时间
8 小时
发表于 2015-6-8 09:54:54 | 显示全部楼层
FreeMODBUS一个奥地利人写的Modbus协议。它是一个针对嵌入式应用的一个免费(自由)的通用MODBUS协议的移植。Modbus是一个工业制造环境中应用的一个通用协议。本软件针对STM32F103系列单片机/STM32F107系列单片机进行MODBUS移植,您只需几分钟的时间,轻松搞定编程。 

http://item.taobao.com/item.htm?id=38183450281
http://weibo.com/lovemcu 电子怎么了
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-6-8 09:59:46 | 显示全部楼层
回复【12楼】linlingpeng:
---------------------------------
卖168 。。。。想钱想疯了吧,1块钱我都嫌多
学无止境
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 13:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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