请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
楼主: eric2013
收起左侧

[客户分享] 【年末福利】安富莱电子发布Modbus教程,配套STM32F103,F407,F429和H7主从机例子,含HAL和标准库两版(2022-10-03)

  [复制链接]

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2019-11-12 15:43:47 | 显示全部楼层
请问下硬汉哥,这几个例程的启动文件

Stack_Size      EQU     0x00008000

这里的堆栈都设置的非常大,请问是什么原因
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2019-12-6 11:29:07 | 显示全部楼层
必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!必须顶!
回复

使用道具 举报

3

主题

9

回帖

18

积分

新手上路

积分
18
发表于 2020-3-20 09:17:10 | 显示全部楼层
最近在弄一个modbus的项目,帮助很大,谢谢楼主!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-4-23 14:45:23 | 显示全部楼层

回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-5-5 17:10:40 | 显示全部楼层
学习了,好资料
回复

使用道具 举报

13

主题

156

回帖

215

积分

高级会员

积分
215
发表于 2020-5-16 09:08:15 | 显示全部楼层
换行业,刚进去工业,不熟悉这块,我想抄一下请问稳定不?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-5-16 09:12:12 | 显示全部楼层
本五心 发表于 2020-5-16 09:08
换行业,刚进去工业,不熟悉这块,我想抄一下请问稳定不?

稳定,这个教程配的例子就是从我们项目例子修改而来的。
回复

使用道具 举报

13

主题

156

回帖

215

积分

高级会员

积分
215
发表于 2020-5-16 09:23:14 | 显示全部楼层
eric2013 发表于 2020-5-16 09:12
稳定,这个教程配的例子就是从我们项目例子修改而来的。

加入ucos要注意什么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-5-16 09:28:03 | 显示全部楼层
本五心 发表于 2020-5-16 09:23
加入ucos要注意什么

这个综合Demo里面有我移植到RTX上的。

你移植到uCOS上也是一样的:

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

13

主题

156

回帖

215

积分

高级会员

积分
215
发表于 2020-5-16 09:38:21 | 显示全部楼层
eric2013 发表于 2020-5-16 09:28
这个综合Demo里面有我移植到RTX上的。

你移植到uCOS上也是一样的:

硬汉哥,能加个微信不?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-5-16 09:49:51 | 显示全部楼层
本五心 发表于 2020-5-16 09:38
硬汉哥,能加个微信不?

baiyongbin2009
回复

使用道具 举报

11

主题

135

回帖

168

积分

初级会员

积分
168
发表于 2020-5-16 17:18:37 | 显示全部楼层
这个modbus教程我一直有个疑惑,为什么串口收来的数据帧不直接和自己使用的变量挂钩呢,我看例程把数据存在了一个结构体了。然后使用的时候还要从结构体取数据,这不是费事了吗。今天没事又看了下freemodbus的从机例子,也是同样,把数据存到数组里了。还是本身这个结构体或者这个数组只是给个例子,具体开发还要看自己。换句话说,例程里的结构体或者freemodbus里数组是需要自己删除的东西。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-5-16 17:21:37 | 显示全部楼层
exp_exp 发表于 2020-5-16 17:18
这个modbus教程我一直有个疑惑,为什么串口收来的数据帧不直接和自己使用的变量挂钩呢,我看例程把数据存在 ...

我们那个是串口FIFO。
回复

使用道具 举报

3

主题

42

回帖

51

积分

初级会员

积分
51
发表于 2020-6-5 09:39:21 | 显示全部楼层
感谢硬汉大哥的教程
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-6-21 11:21:26 | 显示全部楼层
04 指令怎么不能用? 发送 01 04 00 01 00 01 60 0A  接收 01 84 01 82 C0
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-6-21 11:35:01 | 显示全部楼层
简单就好 发表于 2020-6-21 11:21
04 指令怎么不能用? 发送 01 04 00 01 00 01 60 0A  接收 01 84 01 82 C0

校验码不对,是61 3A
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2020-6-29 19:39:14 | 显示全部楼层
顶一个好贴
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-7-3 09:03:38 | 显示全部楼层
好东西,果断收藏学习
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-7-4 09:59:40 | 显示全部楼层
eric2013 发表于 2020-6-21 11:35
校验码不对,是61 3A

你好,硬汉哥,我把校验码改为 61 3A 就不应答了,我的此时环境是 MODBUS调试助手(V1.0)+ MODBUS 虚拟设备 + 虚拟串口工具。点击04H 指令的读取出的问题 微信截图_20200704095804.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-7-4 13:08:46 | 显示全部楼层
简单就好 发表于 2020-7-4 09:59
你好,硬汉哥,我把校验码改为 61 3A 就不应答了,我的此时环境是 MODBUS调试助手(V1.0)+ MODBUS 虚拟 ...

最好用两个板子直接测试、

其他问题你再研究研究。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-7-6 10:51:03 | 显示全部楼层
eric2013 发表于 2020-7-4 13:08
最好用两个板子直接测试、

其他问题你再研究研究。

嗯,好吧,是不是虚拟从机不支持04功能码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-7-6 10:59:01 | 显示全部楼层
简单就好 发表于 2020-7-6 10:51
嗯,好吧,是不是虚拟从机不支持04功能码

这个需要你联系我们旺旺咨询下。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-7-28 09:23:43 | 显示全部楼层
请问,例程里好像没考虑字符间t1.5的检测,这个在实际工程中没有影响吗?谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-7-28 09:39:33 | 显示全部楼层
wubangdi 发表于 2020-7-28 09:23
请问,例程里好像没考虑字符间t1.5的检测,这个在实际工程中没有影响吗?谢谢

我们是采用的中断FIFO方式,没问题,一帧数据是连续发送的。

不放心,提升串口中断优先级即可,这样连续发送期间就用于不会被打断。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
QQ
发表于 2020-8-2 13:03:43 | 显示全部楼层
感谢楼主的无私奉献
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-8-19 16:46:23 | 显示全部楼层

eric2013 您好
在调试modbus时碰到奇怪的問题,使用您的modbus+uartfifo例程,在完成中断接收后,poll里处理完,发送回执失败,现象是进入串口发送,向dr注入一个字节后,就跳转到接收中断
uart recieve ch = 01
uart recieve ch = 04
uart recieve ch = 01
uart recieve ch = 91
uart recieve ch = 00
uart recieve ch = 01
uart recieve ch = 61
uart recieve ch = DB
fini 8 rs485 recieve       //正确接收8个字节
into rs485_senbuf        //poll处理完,进入串口发送
rs485_senbuf _usLen = 0x0005
rs485_senbuf _ucaBuf[_usLen] = 0x01 84 02 C2 C1
rs485_senbuf buf[_usLen] = 0x01 84 02 C2 C1         //检查发送缓存数据正常
into transmit not UART_WORDLENGTH_9B, pData = 01        //向dr注入“01”
uart recieve ch = 00      //然后莫名跳转到接收中断,且串口发送“00”
fini 8 rs485 recieve


单独对该串口进行了简单的hal库的发送、接收测试,是正常的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-8-20 02:25:24 | 显示全部楼层
wubangdi 发表于 2020-8-19 16:46
eric2013 您好
在调试modbus时碰到奇怪的問题,使用您的modbus+uartfifo例程,在完成中断接收后,poll里 ...

使用我们的串口FIFO测试下485是否正常,先不移植modbus
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-8-20 10:08:40 | 显示全部楼层
eric2013 发表于 2020-8-20 02:25
使用我们的串口FIFO测试下485是否正常,先不移植modbus

按您说的单独测试了uartfifo,现象一样,
start progam
Into main uartIRQ    //接收4个80,然后发送第1个80
Into uartIRQ RXNE
Rx_Buf[RxCount] = 80
Into main uartIRQ
Into uartIRQ RXNE
Rx_Buf[RxCount] = 80
Into main uartIRQ
Into uartIRQ RXNE
Rx_Buf[RxCount] = 80
Into main uartIRQ
Into uartIRQ RXNE
Rx_Buf[RxCount] = 80
Rx_Buf[0] = 80
Rx_Buf[1] = 80
Rx_Buf[2] = 80
Rx_Buf[3] = 80    //数据接收测试正常
Into main uartIRQ
Into uartIRQ TXE   //进入发送中断
Into main uartIRQ
Into uartIRQ RXNE   //跳转到接收中断
Rx_Buf[RxCount] = 00   //串口发送00

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-8-20 10:46:53 | 显示全部楼层
wubangdi 发表于 2020-8-20 10:08
按您说的单独测试了uartfifo,现象一样,
start progam
Into main uartIRQ    //接收4个80,然后发送 ...

说明你UARTFIFO没有移植成功。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-8-20 11:08:17 | 显示全部楼层
eric2013 发表于 2020-8-20 10:46
说明你UARTFIFO没有移植成功。

是的,移植您的uartfifo失败了,应该是例程我还没理解透,可能与cubemx生成的工程模版某个地方冲突了,刚刚用hal库重写uart就可以正常中断收发了.
特别喜欢您的代码风格,还要努力向您学习。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-8-21 00:31:10 | 显示全部楼层
wubangdi 发表于 2020-8-20 11:08
是的,移植您的uartfifo失败了,应该是例程我还没理解透,可能与cubemx生成的工程模版某个地方冲突了,刚 ...

回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-10-24 16:09:23 | 显示全部楼层
有没有使用手册
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-10-25 01:01:54 | 显示全部楼层

那个的使用手册。
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
发表于 2020-10-26 20:47:41 | 显示全部楼层
赞一个,学习一下
回复

使用道具 举报

4

主题

18

回帖

30

积分

新手上路

积分
30
发表于 2020-11-9 14:38:18 | 显示全部楼层
手册第20页的 表2.3 应该是写错了
回复

使用道具 举报

4

主题

18

回帖

30

积分

新手上路

积分
30
发表于 2020-11-9 15:48:43 | 显示全部楼层
风眠 发表于 2020-11-9 14:38
手册第20页的 表2.3 应该是写错了

第23页 表4.3也存在错误,有必要的话可以更正一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-11-10 08:58:29 | 显示全部楼层
风眠 发表于 2020-11-9 15:48
第23页 表4.3也存在错误,有必要的话可以更正一下

好的。
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2020-11-15 22:57:45 | 显示全部楼层
请问,安富莱自己写的Modbus 与 开源的FreeModbus  实现的功能上应该是一样的吧? 两者有什么差异? 想移植一个到RTX4上, 以前没了解过这个协议。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-11-16 00:32:45 | 显示全部楼层
清风徐来 发表于 2020-11-15 22:57
请问,安富莱自己写的Modbus 与 开源的FreeModbus  实现的功能上应该是一样的吧? 两者有什么差异? 想移植 ...

我这里移植好了,用的RTX4

【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)
http://www.armbbs.cn/forum.php?m ... 7330&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2020-12-4 11:33:19 | 显示全部楼层
谢谢大佬。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 03:16 , Processed in 0.434686 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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