OpenEdv-开源电子网

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

关于MODBUS保持寄存器

[复制链接]

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-6-20
在线时间
74 小时
发表于 2018-3-26 14:43:58 | 显示全部楼层 |阅读模式
2金钱
本帖最后由 1172250862 于 2018-3-26 15:19 编辑

//Modbus寄存器和单片机寄存器的映射关系
vu32 *Modbus_InputIO[100];                      //输入开关量寄存器指针(这里使用的是位带操作)
vu32 *Modbus_OutputIO[100];                     //输出开关量寄存器指针(这里使用的是位带操作)
u16 *Modbus_HoldReg[1000];                      //保持寄存器指针
u32 testData1=256,testData2=512;
void Modbus_RegMap(void)
{
        //输入开关量寄存器指针指向
        Modbus_InputIO[0]=(vu32*)&PEin(4);//KEY0
        Modbus_InputIO[1]=(vu32*)&PEin(3);//KEY1
        Modbus_InputIO[2]=(vu32*)&PEin(2);//KEY2
        Modbus_InputIO[3]=(vu32*)&PAin(0);//KEY3
        
        //输出开关量寄存器指针指向
        Modbus_OutputIO[0]=(vu32*)&PBout(5);//LED0
        Modbus_OutputIO[1]=(vu32*)&PEout(5);//LED1
        
        //保持寄存器指针指向
        Modbus_HoldReg[0]=(u16*)&testData1;//测试数据1
        Modbus_HoldReg[1]=((u16*)&testData1)+1;//测试数据1
        Modbus_HoldReg[2]=(u16*)&testData2;//测试数据2
        Modbus_HoldReg[3]=((u16*)&testData2)+1;//测试数据2

}

保持寄存器这是怎么操作的    其值是多少   怎么往保持寄存器里写数据   写一下实例(比如怎么往0000 里写入0012  在读出来)  谢谢大家了   

20180323-2(MODBUS)可用.zip

2.76 MB, 下载次数: 141

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

使用道具 举报

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-6-20
在线时间
74 小时
 楼主| 发表于 2018-3-26 15:16:39 | 显示全部楼层
附上源码   为什么写不进保持寄存器里数据    并且16命令不能用    有哪位大哥给看一下
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2018-3-26 17:00:50 | 显示全部楼层
帮顶。
回复

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2018-3-26 23:44:13 | 显示全部楼层
帮忙顶
回复

使用道具 举报

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-6-20
在线时间
74 小时
 楼主| 发表于 2018-3-27 08:44:05 | 显示全部楼层
有大神帮忙说一下圆原因 行吗
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-3-27 09:31:28 | 显示全部楼层
楼主指针用的挺溜的,也不怕玩到沟里去
一分耕耘一分收获。
回复

使用道具 举报

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-6-20
在线时间
74 小时
 楼主| 发表于 2018-3-27 10:31:11 | 显示全部楼层
yklstudent 发表于 2018-3-27 09:31
楼主指针用的挺溜的,也不怕玩到沟里去

已经到沟里了   麻烦您给说一下该怎么处理   是指针这出问题了吗   指针是复制原子哥编的程序  实在找不出问题了   你给说一下吧
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-28 01:27:59 | 显示全部楼层
要用得先申请内存。没申请内存,必死无疑
回复

使用道具 举报

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-6-20
在线时间
74 小时
 楼主| 发表于 2018-3-28 08:24:35 | 显示全部楼层
正点原子 发表于 2018-3-28 01:27
要用得先申请内存。没申请内存,必死无疑

en    是的    没调用   但是 单片机解析数据时有时出错是怎么回事啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-29 01:42:33 | 显示全部楼层
1172250862 发表于 2018-3-28 08:24
en    是的    没调用   但是 单片机解析数据时有时出错是怎么回事啊

要嘛数据有问题,要嘛解析代码有问题,慢慢分析
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2020-8-18
在线时间
29 小时
发表于 2022-1-21 11:24:29 | 显示全部楼层
您好,这个问题解决了吗Modbus_InputIO[0]=(vu32*)&PEin(4);//KEY0  如何知道这个地址具体是多少呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 13:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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