串口读16进制,读的时候没数据等

本文详细介绍了十六进制数的操作方法,包括如何通过直接声明int数组接收十六进制值,以及计算特定十六进制值的校验和。同时,提供了在读取串口数据时,特别是在模块传输速率较慢的情况下,如何通过增加等待动作来确保数据读取的技巧。

读十六进制直接声明int数组接收就可以了。

0x89与0x98,忽略进位的校验和是0x11,计算方法是:((0x89>>4+0x98>>4)&0xf)<<4+((0x89+0x98)&0xf)

读串口,特别是模块的传输速率比较慢是,注意要加一个等待的动作,可以用printf()函数来消耗下时间,这样保证在程序结束前能读到数据。pc一个串口数据解码的函数大约用时30微秒,模块的速度有就差远了,读一帧可能要几万微秒,不等的话可能读不到数据程序就结束了。

记录用,不对内容负责


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值