中级会员
 
- 积分
- 275
- 金钱
- 275
- 注册时间
- 2017-6-20
- 在线时间
- 74 小时
|
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 在读出来) 谢谢大家了
|
|