2019-08-19 20:33发布
Ecrhon 发表于 2017-5-2 16:36 可以使用memcpy库函数进行内存拷贝,把两个8位数据拷贝到一个16位数据类型中去。 假设这2个8位数据类型为c ...
18936018580 发表于 2017-5-2 16:57 谢谢,串口调试助手显示不出来,显示全位00 00 00 00.。。。。是不是串口调试助手数据位选择不对?可是最 ...
最多设置5个标签!
unsigned char frombuff;
unsigned int *ptobuff=&frombuff;
操作ptobuff即可
假设这2个8位数据类型为char c[2];16位为short s;那么你直接memcpy(&s,c,2);就合并了这两个数
谢谢,串口调试助手显示不出来,显示全位00 00 00 00.。。。。是不是串口调试助手数据位选择不对?可是最大只能选8位,不能选16位
刚复习了一下串口通讯的相关原理,似乎规定一次最多只能发8位数据,那么你需要做的就不是在MCU上合成两个8位数据为16位,而是应该在接收端收到两个8位数据后进行合成。这是通讯协议规定的。
我前段时间做过相关项目,传感器通过蓝牙模拟的串口传回来两个字节的数据。我在上位机处接收到若干8位数据后,根据事先规定的数据起始字节和校验字节判断数据完整性,然后把接受到这一次测量数据每两个字节组合成为一个数据,使用的方法就是我刚提到的memcpy。所以数据合并应当是上位机的工作,下位机只管发送就OK了
一周热门 更多>