OpenEdv-开源电子网

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

FreeModbus在STM32103上移植一直回复同一个数据

[复制链接]

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
发表于 2017-8-11 16:22:01 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 笨鸟想飞 于 2017-8-11 16:24 编辑

最近参考了 八度空间 的FreeModbus在STM32上移植  http://openedv.com/forum.php?mod=viewthread&tid=69081&extra=&highlight=modbus&page=4
进行在STM32103ZE(战舰版)移植,在八度哥的原版程序进行串口配置修改,移植后,用串口调试助手和Modbus Poll  上测试
发现一直回复同一个数据,
修改过从机地址后,回复的数据从机地址会改变并符合。
求有做过STM32103系列移植FreeModBUS的好心人,解答一下。
源码如下: V3.0裸机移植.rar (6.94 MB, 下载次数: 430)

最佳答案

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

#define REG_HOLDING_START (USHORT)0x0005 //保持寄存器 #define REG_HOLDING_NREGS (USHORT)4 //保持寄存器个数 你程序中起始地址为5,个数4.你看看你用modbuspoll读的时候设置对吗? 你设置是从1开始,个数10。 应该是0A 03 00 04 00 04 04 B3
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-14 16:19:54 | 显示全部楼层
今天这个问题,我自己找到原因所在了。很感谢@jiutianshenjian  的作答这个是STM32103ZE战舰版移植好的模版: FreeModbus裸机移植成功版.rar (6.95 MB, 下载次数: 781)
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-11 16:22:02 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-12 11:10 编辑

#define REG_HOLDING_START                        (USHORT)0x0005  //保持寄存器
#define REG_HOLDING_NREGS                        (USHORT)4  //保持寄存器个数
你程序中起始地址为5,个数4.你看看你用modbuspoll读的时候设置对吗?
你设置是从1开始,个数10。
应该是0A 03 00 04 00 04 04 B3
2017-08-11_180628.png
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-11 17:08:34 | 显示全部楼层
你能生成keil4的工程吗?打不开
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-11 17:15:16 | 显示全部楼层
我只打开portserial.c看了下,这里有点问题:
        if(USART_GetITStatus(USART1, USART_IT_TXE) == SET)
        {
                prvvUARTTxReadyISR();
                //TXE pending bit is cleared only by a write to the USART_DR register (USART_SendData()).
                USART_ClearITPendingBit(USART1, USART_IT_RXNE);  
        }
小小蜗牛
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-11 17:23:54 | 显示全部楼层
jiutianshenjian 发表于 2017-8-11 17:15
我只打开portserial.c看了下,这里有点问题:
        if(USART_GetITStatus(USART1, USART_IT_TXE) == SE ...

感谢回答,这里改回USART_ClearITPendingBit(USART1, USART_IT_TXE);
情况依旧,我晚点上传keil4版本
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-14 10:21:26 | 显示全部楼层
自顶,该问题仍未解决,或者有做过103系列移植FREEMODBUS的模版吗,我参照以下定时器那里的配置
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-14 11:14:58 | 显示全部楼层
jiutianshenjian 发表于 2017-8-11 17:08
你能生成keil4的工程吗?打不开

FREE.rar (6.9 MB, 下载次数: 820)
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-14 15:02:13 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-14 15:25 编辑

你改Modbus Poll设置了没有,现在什么样子?
你先别改起始和数量,按5和4设置,是什么现象?发送和接收什么数据?

小小蜗牛
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-14 15:25:12 | 显示全部楼层
jiutianshenjian 发表于 2017-8-14 15:02
你改Modbus Poll设置了没有,现在什么样子?

您好,首先感谢回答,这个问题我已经找到问题所在了,跟Modbus Poll设置没关系,是mbfuncinput.c这个文件没有按照八度哥去做的修改,同时因为串口中断那使用了 USART_IT_TXE,需要在mbrtu.c加一段代码。

其实,归根到底是我的freemodbus1.5库用的是官方的库,最终采用八度哥模版的port文件,修改一下串口配置就能完美运行了
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-14 15:46:50 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-14 15:49 编辑

我用你的也正常运行啊
就把起始地址你的0改为1.
#define REG_HOLDING_START                        (USHORT)1 //保持寄存器
#define REG_HOLDING_NREGS                        (USHORT)8  //保持寄存器个数

2017-08-14_154601.png
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-14 15:50:44 | 显示全部楼层
你找到问题了就好。
小小蜗牛
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-8-16 20:37:19 | 显示全部楼层
笨鸟想飞 发表于 2017-8-14 15:25
您好,首先感谢回答,这个问题我已经找到问题所在了,跟Modbus Poll设置没关系,是mbfuncinput ...

改为TC就可以了,具体可以看看ST的参考手册对这两个位的说明
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-21 14:29:55 | 显示全部楼层
楼主 我用了你的 咋没反应呢0.0
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-21 15:03:53 | 显示全部楼层
564646396 发表于 2017-8-21 14:29
楼主 我用了你的 咋没反应呢0.0

首先确认是不是用的是我2楼上传的模版,然后你需要在确认  串口设置(如果是直接用战舰版,可以直接采用下载),最后,确认一下MODBUS POLL的串口设置,和配置是否正确
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-21 15:54:39 | 显示全部楼层
笨鸟想飞 发表于 2017-8-21 15:03
首先确认是不是用的是我2楼上传的模版,然后你需要在确认  串口设置(如果是直接用战舰版,可以直接采用 ...

设置好了  用POLL  和你的显示一样   那为什么我用串口就没反应呢
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-21 16:42:28 | 显示全部楼层
564646396 发表于 2017-8-21 15:54
设置好了  用POLL  和你的显示一样   那为什么我用串口就没反应呢

用POLL可以成功运行的是吧?  那就是你串口软件设置的问题了,注意波特率设置,还有别勾选发送新行
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-21 16:48:46 | 显示全部楼层
笨鸟想飞 发表于 2017-8-21 16:42
用POLL可以成功运行的是吧?  那就是你串口软件设置的问题了,注意波特率设置,还有别勾选发送新行

大神  能私发个联系方式吗?
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-21 16:50:26 | 显示全部楼层
本帖最后由 笨鸟想飞 于 2017-8-21 16:55 编辑
564646396 发表于 2017-8-21 15:54
设置好了  用POLL  和你的显示一样   那为什么我用串口就没反应呢

QQ图片20170821165450.png

这个是串口的设置,亲测是无问题的。
你看一下设置,还有记得每次烧录完程序,记得重启,再打开串口。因为下载的时候会产生中断,会影响MODBUS的中断判断时间
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-21 17:09:18 | 显示全部楼层
笨鸟想飞 发表于 2017-8-21 16:50
这个是串口的设置,亲测是无问题的。
你看一下设置,还有记得每次烧录完程序,记得重启,再打开串口 ...

  OK了  谢谢  设置问题
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-21 18:59:22 | 显示全部楼层
564646396 发表于 2017-8-21 17:09
OK了  谢谢  设置问题

回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-23 09:57:13 | 显示全部楼层
大哥  那个返回值有点迷糊   如何发送一个数据    去控制灯的亮灭           可能问的问题有点菜    不过想这么玩玩
回复

使用道具 举报

4

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2017-8-23
在线时间
3 小时
发表于 2017-8-23 11:10:43 | 显示全部楼层

需要ST品牌的样品吗? 填一份扫IC网问卷可以得到三种ST任意型号的样品。 https://www.wjx.top/jq/15943942.aspx
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-25 09:21:42 | 显示全部楼层
本帖最后由 笨鸟想飞 于 2017-8-25 09:23 编辑
564646396 发表于 2017-8-23 09:57
大哥  那个返回值有点迷糊   如何发送一个数据    去控制灯的亮灭           可能问的问题有点菜    不过想 ...

首先,你需要初步理解MODbus协议的基本功能码以及协议是怎么组成的。
你说的其实可以理解为:对某一个地址的寄存器进行写操作,写入后响应灯的亮灭

那么你可以在port.c文件里的16功能码里面那段进行修改或者直接在主函数也可以,举例:[mw_shl_code=applescript,true]

(void)eMBPoll();
               
                if(usRegHoldingBuf[1]==0x01)  //你写入的数组,判断数组是否为1(写入1)
                        {
                                LED0=0;
                                delay_ms(1000);                        
                                delay_ms(500);        
                                LED0=1;                                                               
                                usRegHoldingBuf[1]=0;
                        }[/mw_shl_code]


后面就是用MODBUS POLL测试,点16功能码,输入对应的寄存器配置,然后对相应位操作,这样就可以实现了
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-25 11:11:32 | 显示全部楼层
    谢谢 大哥
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-25 11:18:38 | 显示全部楼层
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingBuf[3]起始地址低    usRegHoldingBuf[4] 数据的高    usRegHoldingBuf[5] 数据的低   CRC校验等  对吗?
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-25 12:37:41 | 显示全部楼层
https://wenku.baidu.com/view/69e ... 19.html?from=search

参考网上的一些资料吧,其实大致就是,
主机下发:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器个数) xx(CRC)
从机(单片机)响应:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器数值) xx(CRC)


大概就是这样的意思吧,当然不同功能码的格式不同
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-25 12:38:34 | 显示全部楼层
564646396 发表于 2017-8-25 11:18
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingB ...


https://wenku.baidu.com/view/69e6e70876c66137ee061919.html?from=search

参考网上的一些资料吧,其实大致就是,
主机下发:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器个数) xx(CRC)
从机(单片机)响应:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器数值) xx(CRC)


大概就是这样的意思吧,当然不同功能码的格式不同
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-26 16:41:56 | 显示全部楼层
笨鸟想飞 发表于 2017-8-25 12:38
https://wenku.baidu.com/view/69e6e70876c66137ee061919.html?from=search

参考网上的一些资料吧, ...

嗯嗯  看了 受益良多
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-26 16:52:07 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-26 17:10 编辑
564646396 发表于 2017-8-25 11:18
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingB ...

不对。
站号、功能码跟这个保持寄存器缓冲区usRegHoldingBuf没关系。这个0代表保持寄存器起始地址REG_HOLDING_START。
例如你REG_HOLDING_START是100,101地址的值就在usRegHoldingBuf[1]里存放。以此类推。


你说的是协议格式,第一帧发从机地址,也就是你说的站号,第二帧发功能码,等等。
假如你功能码06,寄存器地址101,数据123.
发完CRC后从机接收到,就把usRegHoldingBuf[1]的值改为123.
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-26 17:19:21 | 显示全部楼层
笨鸟想飞 发表于 2017-8-25 12:38
https://wenku.baidu.com/view/69e6e70876c66137ee061919.html?from=search

参考网上的一些资料吧, ...

  我看了很久   不知道哪些是定义好的  哪个数组定义的是地址  哪些数组定义的是寄存器等 。。。。 有点笨  英语盲  C语言也不是很好 正在学
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-26 17:46:44 | 显示全部楼层
jiutianshenjian 发表于 2017-8-26 16:52
不对。
站号、功能码跟这个保持寄存器缓冲区usRegHoldingBuf没关系。这个0代表保持寄存器起 ...

  谢谢 啊
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-26 17:49:06 | 显示全部楼层
我发送了0A 06 00 01 00 01 18 B1   然后返回了也是0A 06 00 01 00 01 18 B1  但是为什么灯没变化呢  迷茫中  按自己的理解  LED2灯要取反的       为什么还是没什么变化     
微信图片_20170713100345.png
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-26 17:49:55 | 显示全部楼层
我去 传错图片了  抱歉  
QQ图片20170826174555.png
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-27 19:47:53 | 显示全部楼层
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-27 19:48:12 | 显示全部楼层
564646396 发表于 2017-8-26 17:49
我去 传错图片了  抱歉


你查一下起始地址多少。REG_HOLDING_START
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 08:41:09 | 显示全部楼层
0x0001
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 08:46:20 | 显示全部楼层
jiutianshenjian 发表于 2017-8-27 19:48
你查一下起始地址多少。REG_HOLDING_START

[mw_shl_code=c,true]
#define REG_INPUT_START                          (USHORT)0x0001  //Æeê¼¼Ä′æÆ÷
#define REG_INPUT_NREGS                          (USHORT)8  //¼Ä′æÆ÷¸öêy
#define REG_HOLDING_START                        (USHORT)0x0001  //±£3Ö¼Ä′æÆ÷
#define REG_HOLDING_NREGS                        (USHORT)8  //±£3Ö¼Ä′æÆ÷¸öêy

[/mw_shl_code]
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 08:46:51 | 显示全部楼层
jiutianshenjian 发表于 2017-8-27 19:48
你查一下起始地址多少。REG_HOLDING_START

0x0001
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 09:42:20 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-28 09:45 编辑
564646396 发表于 2017-8-28 08:46
[mw_shl_code=c,true]
#define REG_INPUT_START                          (USHORT)0x0001  //Æeê ...

你看看buf[2]或者发 0A 06 00 00 00 01 49 71 试试
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 09:59:03 | 显示全部楼层
jiutianshenjian 发表于 2017-8-28 09:42
你看看buf[2]或者发 0A 06 00 00 00 01 49 71 试试

返回值是0A 86 02 B2 63                  错误
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:02:51 | 显示全部楼层
564646396 发表于 2017-8-28 09:59
返回值是0A 86 02 B2 63                  错误

不知道为什么错误。
我想说的是,报文中传输的地址,比那个地址小1.
那你看看buf[2],意思就是你改变的是[2]的值。
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 10:12:26 | 显示全部楼层
jiutianshenjian 发表于 2017-8-28 10:02
不知道为什么错误。
我想说的是,报文中传输的地址,比那个地址小1.
那你看看buf[2],意思就是你改变的 ...

哦哦 我看看
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:14:59 | 显示全部楼层

你起始地址1,应该对的。对应buf【0】
你发送的1地址,对应的buf【1】对的。
我按起始地址0算的。
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 10:17:11 | 显示全部楼层
jiutianshenjian 发表于 2017-8-28 10:02
不知道为什么错误。
我想说的是,报文中传输的地址,比那个地址小1.
那你看看buf[2],意思就是你改变的 ...

0A 06 00 02 00 01 E8 B1  我靠  发送这个就亮了      大神 能解释下么             为什么0A 00 01 00 01  没亮呢   
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:20:55 | 显示全部楼层
564646396 发表于 2017-8-28 10:17
0A 06 00 02 00 01 E8 B1  我靠  发送这个就亮了      大神 能解释下么             为什么0A 00 01 00 0 ...

按我所了解的,暂时没想通。
地址2,对应的是寄存器地址3.你起始1,3应该是buf【2】才对。
小小蜗牛
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-8-28 10:26:15 | 显示全部楼层
jiutianshenjian 发表于 2017-8-28 10:20
按我所了解的,暂时没想通。
地址2,对应的是寄存器地址3.你起始1,3应该是buf【2】才对。

  啊哈哈 我现在有点小激动          谢谢解答  啊哈哈 我也能这样控制灯的亮灭了      
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:36:46 | 显示全部楼层
564646396 发表于 2017-8-28 10:26
啊哈哈 我现在有点小激动          谢谢解答  啊哈哈 我也能这样控制灯的亮灭了

你肯定改了哪里了,不然发0A 06 00 00 是不会错误的。因为你起始是1.
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:38:53 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-28 10:40 编辑

借楼主宝地聊天,莫怪
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-28 10:40:23 | 显示全部楼层
564646396 发表于 2017-8-28 10:26
啊哈哈 我现在有点小激动          谢谢解答  啊哈哈 我也能这样控制灯的亮灭了


你实际起始地址2刚好符合你的现象。
小小蜗牛
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-5 21:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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