OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7137|回复: 7

2个八位合成十六位

[复制链接]

17

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2017-3-28
在线时间
169 小时
发表于 2017-5-2 16:17:32 | 显示全部楼层 |阅读模式
5金钱
mini 板串口1接收到4096个数据,如01 11 02 42 ........。现要合成2048个16位数据,如01位高八位,11为低八位;02位高八位,42位低八位...........。合成后的数据通过串口3发送出来,利用串口调试助手显示合成后的2048个数(其中串口调试助手显示要求是十进制)。求大神指导!

最佳答案

查看完整内容[请看2#楼]

指针运用。如 unsigned char frombuff; unsigned int *ptobuff=&frombuff; 操作ptobuff即可
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3863
金钱
3863
注册时间
2016-6-11
在线时间
710 小时
发表于 2017-5-2 16:17:33 | 显示全部楼层
指针运用。如
unsigned char frombuff;
unsigned int *ptobuff=&frombuff;
操作ptobuff即可
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13197
金钱
13197
注册时间
2012-11-26
在线时间
3820 小时
发表于 2017-5-2 16:30:09 | 显示全部楼层
用联合,或者强制转换都行
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-7-27
在线时间
19 小时
发表于 2017-5-2 16:36:15 | 显示全部楼层
可以使用memcpy库函数进行内存拷贝,把两个8位数据拷贝到一个16位数据类型中去。
假设这2个8位数据类型为char c[2];16位为short s;那么你直接memcpy(&s,c,2);就合并了这两个数
回复

使用道具 举报

17

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2017-3-28
在线时间
169 小时
 楼主| 发表于 2017-5-2 16:57:53 | 显示全部楼层
Ecrhon 发表于 2017-5-2 16:36
可以使用memcpy库函数进行内存拷贝,把两个8位数据拷贝到一个16位数据类型中去。
假设这2个8位数据类型为c ...

谢谢,串口调试助手显示不出来,显示全位00 00 00 00.。。。。是不是串口调试助手数据位选择不对?可是最大只能选8位,不能选16位
回复

使用道具 举报

6

主题

146

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1254
金钱
1254
注册时间
2016-11-30
在线时间
211 小时
发表于 2017-5-2 22:29:44 | 显示全部楼层
可以弄两个16位的变量,把前面2个合成一个存进变量1,后面2个合成一个存进变量2,然后再用printf打印出来,打印可以用%x格式进行16进制的输出。
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-7-27
在线时间
19 小时
发表于 2017-5-2 23:39:56 | 显示全部楼层
18936018580 发表于 2017-5-2 16:57
谢谢,串口调试助手显示不出来,显示全位00 00 00 00.。。。。是不是串口调试助手数据位选择不对?可是最 ...

刚复习了一下串口通讯的相关原理,似乎规定一次最多只能发8位数据,那么你需要做的就不是在MCU上合成两个8位数据为16位,而是应该在接收端收到两个8位数据后进行合成。这是通讯协议规定的。
我前段时间做过相关项目,传感器通过蓝牙模拟的串口传回来两个字节的数据。我在上位机处接收到若干8位数据后,根据事先规定的数据起始字节和校验字节判断数据完整性,然后把接受到这一次测量数据每两个字节组合成为一个数据,使用的方法就是我刚提到的memcpy。所以数据合并应当是上位机的工作,下位机只管发送就OK了
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2012-6-27
在线时间
14 小时
发表于 2017-5-3 09:48:14 | 显示全部楼层
你们还忽略了大小端模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 17:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表