OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 菜鸟2

在STM32上移植FreeModbus RTU的一点经验总结

  [复制链接]

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-3-7
在线时间
16 小时
发表于 2016-7-28 16:21:57 | 显示全部楼层
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2016-7-29 15:44:16 | 显示全部楼层
谢谢分享,我需要这个modbus和电机驱动器通信,,不知道能不能用得上
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
金钱
379
注册时间
2016-8-1
在线时间
108 小时
发表于 2016-8-1 23:39:29 | 显示全部楼层
好厉害我也正面学这个方面的,谢谢
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2016-7-5
在线时间
43 小时
发表于 2016-8-2 17:15:25 | 显示全部楼层
学习了,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-11-23
在线时间
20 小时
发表于 2016-8-17 01:00:10 | 显示全部楼层
楼主,谢谢分享,有不明白的请教一下:
你说:至此,portserial.c处理完毕。
     porttimer.c的移植和portserial.c十分相似,但是要特别注意定时器中断的时间长度应该是3.5个字符时间,我这里只是简单粗暴的按照波特率是9600时候计算的。文件很短,直接上代码---

-----请问,为什么定时时间要设置在3.5个字符时间呢?什么理由?请回答一下,谢谢。
DIY改变世界
回复 支持 反对

使用道具 举报

4

主题

125

帖子

1

精华

高级会员

Rank: 4

积分
870
金钱
870
注册时间
2014-8-7
在线时间
49 小时
发表于 2016-9-18 15:03:17 | 显示全部楼层
Good!!!   Mark!!!
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2016-4-7
在线时间
96 小时
发表于 2016-9-18 16:00:30 | 显示全部楼层
不错,收藏了,以后用的到,感谢楼主
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-8-31
在线时间
43 小时
发表于 2016-10-18 16:23:50 | 显示全部楼层
gaoxiaohu110 发表于 2016-1-24 00:01
第一个寄存器的数读不上来,求分析,解决!谢谢!
04:输入寄存器
/* ----------------------- Defines -- ...

ls问题解决了吗,,我也遇到你的问题了,,第一个字节读不出来啊
回复 支持 反对

使用道具 举报

53

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2013-4-10
在线时间
84 小时
发表于 2016-10-18 18:12:14 | 显示全部楼层
天时地利人和 发表于 2016-10-18 16:23
ls问题解决了吗,,我也遇到你的问题了,,第一个字节读不出来啊

/* ----------------------- Defines ------------------------------------------*/
#define REG_INPUT_START                 ( 1 )  //输入寄存器起始地址
#define REG_INPUT_NREGS                 ( 64 ) //输入寄存器数量

#define REG_HOLDING_START               ( 1 )   //保持寄存器起始地址
#define REG_HOLDING_NREGS               ( 200)  //保持寄存器数量

#define REG_COILS_START                 ( 1 )   //读写线圈起始地址
#define REG_COILS_SIZE                  (240)   //读写线圈数量


#define REG_DISCRETE_START              ( 1 )   //读离散线圈起始地址
#define REG_DISCRETE_SIZE               (240)   //读离散线圈数量


起始地址设置成 1,完美解决
打铁还需自身硬@ing
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-8-31
在线时间
43 小时
发表于 2016-10-19 09:20:08 | 显示全部楼层
gaoxiaohu110 发表于 2016-10-18 18:12
/* ----------------------- Defines ------------------------------------------*/
#define REG_INPUT ...

那数组的第0个字节是不是就没有用了?


再请教1个问题:modbus poll打开后是下面这样的,每次都得手动调,有什么好的方法让他显示的好看点吗?
1.png






回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2015-12-28
在线时间
132 小时
发表于 2016-10-21 08:53:08 | 显示全部楼层

***********             **                       **********                           *************  
*                            **                        *           *                                              *
*                            **                        *           *                                              *
***********             **                       *            *                            ************
*                            **                        *            *                                             *
*                            **                        *            *                                             *
*                            **                        **********                           *************
越努力,越优秀;越独立,越自由
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2014-2-12
在线时间
5 小时
发表于 2016-12-21 08:54:25 | 显示全部楼层
很不错呀,正需要
回复 支持 反对

使用道具 举报

15

主题

59

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1400
金钱
1400
注册时间
2016-6-2
在线时间
166 小时
发表于 2016-12-21 09:16:52 | 显示全部楼层
支持!Mark一下。
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2013-5-29
在线时间
20 小时
发表于 2017-1-8 14:55:29 | 显示全部楼层
看了楼主的贴,我已经移植成功,谢谢
回复 支持 反对

使用道具 举报

9

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-12-5
在线时间
11 小时
发表于 2017-1-9 08:28:39 | 显示全部楼层
MARK,留用。。
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-6-3
在线时间
5 小时
发表于 2017-1-24 14:17:54 | 显示全部楼层
非常有用,找了很多帖子,就这个最有用   非常感谢,
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2015-12-28
在线时间
17 小时
发表于 2017-1-30 13:44:42 | 显示全部楼层
移植好后编译没通过,我一个一个改后,改到这卡住了,请问这个怎么改?
Build target 'Target 1'
compiling mbfunccoils.c...
compiling mbfuncdisc.c...
compiling mbfuncholding.c...
compiling mbfuncinput.c...
compiling mbfuncother.c...
compiling mbutils.c...
compiling mbrtu.c...
..\modbus\rtu\mbrtu.c(153): warning:  #550-D: variable "xFrameReceived" was set but never used
compiling mb.c...
compiling portevent.c...
compiling portserial.c...
compiling porttimer.c...
linking...
..\OBJ\USART.axf: Error: L6218E: Undefined symbol TIMERExpiredISR (referred from stm32f10x_it.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBRegCoilsCB (referred from mbfunccoils.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBRegDiscreteCB (referred from mbfuncdisc.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBRegHoldingCB (referred from mbfuncholding.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBRegInputCB (referred from mbfuncinput.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBASCIIInit (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBASCIIReceive (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBASCIISend (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBASCIIStart (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol eMBASCIIStop (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol xMBASCIIReceiveFSM (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol xMBASCIITimerT1SExpired (referred from mb.o).
..\OBJ\USART.axf: Error: L6218E: Undefined symbol xMBASCIITransmitFSM (referred from mb.o).
Target not created
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2014-12-24
在线时间
10 小时
发表于 2017-2-15 15:49:57 | 显示全部楼层
学习啦,非常感谢。。
回复 支持 反对

使用道具 举报

2

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2015-1-19
在线时间
26 小时
发表于 2017-2-27 13:58:15 | 显示全部楼层
Passmeby 发表于 2017-1-30 13:44
移植好后编译没通过,我一个一个改后,改到这卡住了,请问这个怎么改?
Build target 'Target 1'
compili ...

.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol prvvTIMERExpiredISR (referred from usart.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol prvvUARTRxISR (referred from usart.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol prvvUARTTxReadyISR (referred from usart.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol eMBRegCoilsCB (referred from mbfunccoils.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol eMBRegDiscreteCB (referred from mbfuncdisc.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol eMBRegHoldingCB (referred from mbfuncholding.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol eMBRegInputCB (referred from mbfuncinput.o).
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol __aeabi_assert (referred from mbutils.o).
我也是
活在当下,静心坚持。
回复 支持 反对

使用道具 举报

2

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2015-1-19
在线时间
26 小时
发表于 2017-2-27 14:10:53 | 显示全部楼层
spfanlost 发表于 2017-2-27 13:58
.\Flash\Obj\output.axf: Error: L6218E: Undefined symbol prvvTIMERExpiredISR (referred from usart.o ...

1声明函数上面声明的static没有删除;2MicroLib并不支援assert(),target中钩掉USE MicroLIB编译就可以通过了
活在当下,静心坚持。
回复 支持 1 反对 0

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-9-11
在线时间
5 小时
发表于 2017-3-14 17:49:06 | 显示全部楼层
不错,谢谢分享
回复 支持 反对

使用道具 举报

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2013-10-2
在线时间
20 小时
发表于 2017-3-23 17:43:51 | 显示全部楼层
请问楼主调试时串口是用的485还是232?
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-3-23
在线时间
6 小时
发表于 2017-3-23 17:48:25 | 显示全部楼层
liu01551108 发表于 2017-3-23 17:43
请问楼主调试时串口是用的485还是232?

modbus支持485,也支持232啊。
modbus物理层无关的
包括红外,蓝牙,无线都行,无所谓。
>>> 友情推荐 >>> 《Modbus软件开发实战指南》
清华出版社: http://t.cn/RiFOFSc
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2016-12-28
在线时间
50 小时
发表于 2017-3-23 21:03:31 | 显示全部楼层
mark
谢谢分享
回复 支持 反对

使用道具 举报

2

主题

171

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3792
金钱
3792
注册时间
2016-6-26
在线时间
276 小时
发表于 2017-3-25 09:06:45 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2017-4-12 09:32:00 | 显示全部楼层
mark...........
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
8572
金钱
8572
注册时间
2016-5-7
在线时间
537 小时
发表于 2017-6-20 20:52:52 | 显示全部楼层
下载学习学习,不错
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-6-29
在线时间
1 小时
发表于 2017-6-29 16:40:34 | 显示全部楼层
准备学习一年了,终于开动了,从今天开始 ,认真学习
回复 支持 反对

使用道具 举报

3

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2016-1-16
在线时间
15 小时
发表于 2017-7-3 11:16:10 | 显示全部楼层
很不错 收藏了
回复 支持 反对

使用道具 举报

3

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2016-1-16
在线时间
15 小时
发表于 2017-7-4 10:02:21 | 显示全部楼层
收藏 好好好好好
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2016-9-13
在线时间
11 小时
发表于 2017-7-8 16:54:46 | 显示全部楼层
我正在移植中,感谢大家分享经验!
回复 支持 反对

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2017-7-18 13:29:20 | 显示全部楼层
mark 现在正好用到
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2016-9-20
在线时间
47 小时
发表于 2017-7-18 16:43:06 | 显示全部楼层
mark   备用
回复 支持 反对

使用道具 举报

29

主题

486

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3083
金钱
3083
注册时间
2014-7-19
在线时间
413 小时
发表于 2017-7-18 17:42:22 | 显示全部楼层
mark!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2017-8-16
在线时间
0 小时
发表于 2017-8-16 09:52:30 | 显示全部楼层
MARK!!!!!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2017-7-31
在线时间
9 小时
发表于 2017-11-1 14:10:08 | 显示全部楼层
mark  要验证邮箱,,好麻烦
回复 支持 反对

使用道具 举报

6

主题

35

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2014-4-1
在线时间
11 小时
 楼主| 发表于 2017-11-6 22:13:32 | 显示全部楼层
lyly8 发表于 2016-8-17 01:00
楼主,谢谢分享,有不明白的请教一下:
你说:至此,portserial.c处理完毕。
     porttimer.c的移植和po ...

协议要求的,可以参考协议说明文档
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4372
金钱
4372
注册时间
2017-5-30
在线时间
580 小时
发表于 2018-2-2 11:16:19 | 显示全部楼层
请问一下楼主,输入寄存器函数、读写保持寄存器函数、读写线圈函数和读离散寄存器函数我都写了,但是只有01 03可以用,楼主方便帮忙分析一下吗
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-2-4
在线时间
1 小时
发表于 2018-2-6 17:21:12 | 显示全部楼层
mark,正在学习中
回复 支持 反对

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1669
金钱
1669
注册时间
2018-1-29
在线时间
160 小时
发表于 2018-2-7 05:19:53 | 显示全部楼层
感谢大神分享!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-2-6
在线时间
6 小时
发表于 2018-2-7 13:19:49 | 显示全部楼层

mark ,学习学习!
回复 支持 反对

使用道具 举报

46

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1129
金钱
1129
注册时间
2016-3-25
在线时间
365 小时
发表于 2018-2-28 19:47:18 | 显示全部楼层
谢谢楼主分享
代写STM32各类驱动,DEMO程序
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-1-27
在线时间
2 小时
发表于 2018-3-31 09:41:19 | 显示全部楼层
感谢楼主的分享,我也是折腾了几天,终于调试通过了。
折腾的原因跟这个是因为我在modbus的处理中加了打印输出,因为打印输出的造成了它在原有定时器时长下的处理。
在添加了打印输出后,只有9600和19200的波特率能够正常通信,更高波特率会有规律性的丢失接收字节
在去掉modbus中添加的打印输出后,从9600-115200波特率都可正常工作。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2017-9-8
在线时间
4 小时
发表于 2018-4-16 09:40:57 | 显示全部楼层
那个PORT文件用FreeRTOS文件夹下面的吗
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-4-8
在线时间
9 小时
发表于 2018-4-21 15:26:08 | 显示全部楼层
好人一生平安
回复 支持 反对

使用道具 举报

6

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2018-4-18
在线时间
10 小时
发表于 2018-4-24 10:22:04 | 显示全部楼层
谢谢楼主分享~我也分享一个阻容感采购群:567145302
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2018-5-16 07:47:14 | 显示全部楼层
752151619 发表于 2016-1-11 18:08
你用这个代码调试过吗。。。有没什么问题啊。。。

我用232通讯正常 但485通讯有时会死机。有没什么办法改啊。。
回复 支持 反对

使用道具 举报

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2017-3-27
在线时间
76 小时
发表于 2018-6-11 19:40:43 | 显示全部楼层
mark!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-7-30
在线时间
4 小时
发表于 2018-7-30 12:22:09 | 显示全部楼层
怎么下载不了附件啊
回复 支持 反对

使用道具 举报

4

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2018-2-11
在线时间
53 小时
发表于 2018-8-1 10:24:50 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 16:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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