项目开发过程中遇到的问题和解决方法

在开发程序的过程中遇到了不少问题,在这里记录一下。
Q:Modbus的收发、flash的读写都OK了,用上位机调试,发现写入的数据一直都是一个常数。
A:用逻辑分析仪读上位机发的报文,发现上位机发的Modbus报文不完全符合Modbus协议的规范,须根据上位机报文格式进行响应修改。例:Modbus写单个寄存器,用06指令,指令格式为:
1B station_id,1B cmd,2B address,2B data,2B CRC
而上位机将写单个寄存器与写多个寄存器的指令合并为10指令,格式为
1B station_id,1B cmd,2B address,2B register number,2B data number,4B data,2B CRC
导致每次我实际写单个寄存器时,取到的data总是在上位机发的报文中的register number区,而这大部分都是01,所以读到的值一直是01。
Q:经验
A:1、在code的时候,多写一些test case放在代码里,当上位机调试不成功时,可以用test case去验证单个逻辑的可行性;
2、可以在程序的开头或关键处加print(“hello world”),用于做标记。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值