DSP使用Modbus协议与ModbusSlave通信

1.Modbus协议

我理解他就相当于一个字典,作用就是:我发送的一帧数据,你能够明白我的意思,然后快速的给我回个话。

2.DSP端

使用DSP其实就是用了他的SCI通信,通过串口与PC上的Modbus Slave通信。讲白了,Modbus仅仅规定了 发送数据 的内容。如地址,功能码,操作的寄存器地址,操作的寄存器的值,CRC16校验。在使用的时候一定要注意,CRC16校验码一定不能出错,如果错了,Modbus Slave是不能识别的,就会回传错误的数据。
这边要注意的是:

  1. 发送数据时,发送的是16进制的数据,所以可以直接将这个数据写到SCITXBUF中去发送,不能放在发送字符串的程序中混用。
  2. 接收数据时,创建一个数组,注意数组的长度其实是与发送的命令字相关的。需要判断RXFFST是不是等于0。RXFFST本质是显示FIFO的使用量,然后你读走一个FIFO,这个RXFFST就减少1。这边的判断条件就可以设置为下边。

3.Modbus Slave端

这个端口的操作比较少,就是设置波特率,通信的数据模式。

4.验证

4.1 DSP读Slave的数据——功能码03

在这里插入图片描述
从图中可以看到:成功的读到了第一个寄存器的值2

4.2 DSP将数据写到Slave——功能码06

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值