OpenEdv-开源电子网

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

stm32怎么将一个64位数据拆分成四个16位数据

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
发表于 2016-7-1 16:42:26 | 显示全部楼层 |阅读模式
1金钱
stm32怎么将一个64位数据拆分成四个16位数据

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2016-7-1 16:42:27 | 显示全部楼层
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11405
金钱
11405
注册时间
2014-4-1
在线时间
1282 小时
发表于 2016-7-1 17:10:22 | 显示全部楼层

什么目的?

回复

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1694
金钱
1694
注册时间
2012-5-10
在线时间
437 小时
发表于 2016-7-1 17:12:30 | 显示全部楼层
哥,能不能百度啊
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3860
金钱
3860
注册时间
2016-6-11
在线时间
709 小时
发表于 2016-7-1 19:21:26 来自手机 | 显示全部楼层
联合或移位强制转换
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-7-2 09:40:38 | 显示全部楼层
用联合体
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
 楼主| 发表于 2016-7-2 09:41:35 | 显示全部楼层
xsx127 发表于 2016-7-1 17:12
哥,能不能百度啊

GPIOWrite只能写16位数据
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
 楼主| 发表于 2016-7-2 09:43:21 | 显示全部楼层

GPIOWrite只能写16位数据
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
 楼主| 发表于 2016-7-2 09:55:43 | 显示全部楼层
jermy_z 发表于 2016-7-1 17:07
移位,强制转换

uint64_t data64 = 0x1234567812345678;

u16 data16_1,data16_2,data16_3,data16_4;

data16_1 = (u16)(data64 >> 48);

data16_2 = (u16)(data64 >> 32);

data16_3 = (u16)(data64 >> 16);

data16_4 = (u16)data64;
这样写有问题么?请指导一下
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
 楼主| 发表于 2016-7-2 09:56:22 | 显示全部楼层
jxcrgt35 发表于 2016-7-1 19:21
联合或移位强制转换

uint64_t data64 = 0x1234567812345678;

u16 data16_1,data16_2,data16_3,data16_4;

data16_1 = (u16)(data64 >> 48);

data16_2 = (u16)(data64 >> 32);

data16_3 = (u16)(data64 >> 16);

data16_4 = (u16)data64;
这样写有问题么
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3860
金钱
3860
注册时间
2016-6-11
在线时间
709 小时
发表于 2016-7-2 20:41:05 | 显示全部楼层
godlove 发表于 2016-7-2 09:56
uint64_t data64 = 0x1234567812345678;

u16 data16_1,data16_2,data16_3,data16_4;

是的,联合其实也很简单
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
 楼主| 发表于 2016-7-3 16:22:01 | 显示全部楼层
我已经解决了,谢谢你们
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 09:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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