如图所示的数据缓冲区:
如果Buffer是一个struct,大小比如为20个字,那么:
一次性读取20个字的数据,返回正确数据
读取超出20个字的范围,会返回82错误码
如果一次读取少于20个个字,返回数据全部为0000
写数据没反应(06或16功能码,modscan软件测试)
前两条还很好,后两条就完全没法解释。以上测试都使用modscan软件和commix串口调试软件。
新建一个测试项目,只有Modbus从站相关的程序,还是一样的测试结果。
如果把Buffer由struct改成数组呢?测试就完全正常了,正常了,正常了,有谁给解释一下呢。
本来想发个帖子提醒一下各位,这个数据缓冲区只能用数组不能用结构,截图的时候想偷个懒,不打开程序而直接使用技术文档里的例子,结果打开技术文档,发现它的写法不一样,如下图所示:
难道写成这种指针形式就可以了,谁有条件试验一下