OpenEdv-开源电子网

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

数据不对齐如何访问?

[复制链接]

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2013-11-6 09:03:03 | 显示全部楼层 |阅读模式
我记得STM要求地址以4的倍数访问

那比如现在0x20000020到0x20000039上有以下数据
0x20000020 0x20000021 0x20000022 0x20000023
11 08 22 08
0x20000024 0x20000025 0x20000026 0x20000027
33 08 44 08
0x20000028 0x20000029 0x20000030 0x20000031
55 08 66 08
0x20000032 0x20000033 0x20000034 0x20000035
77 08 88 08
0x20000036 0x20000037 0x20000038 0x20000039
99 08 AA 08


数据类型是16位,就是第一个数为0x0811,第二个数为0x0822...第20个数为0x08AA

然后我有一个32位的变量ADDR,打算强制成地址指针,请问我该如何访问他啊?把一个个数正常读出来


知道的帮下忙,谢谢






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

使用道具 举报

19

主题

302

帖子

2

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2011-11-22
在线时间
10 小时
发表于 2013-11-6 09:21:20 | 显示全部楼层
unsigned short pBuffer[100];

pBuffer[i++]=*(volatile unsigned short *)ADDR;//读取2个字节. 
ADDR+=2;//偏移2个字节.
世界如此美好,好好珍惜每一天吧!
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-11-6 10:41:16 | 显示全部楼层
*((u16*)0x20000020 + n)

n = 0~9;
回复 支持 反对

使用道具 举报

4

主题

117

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-8-20
在线时间
0 小时
发表于 2013-11-6 17:46:39 | 显示全部楼层
value = pBuf[n/2] >> 16
回复 支持 反对

使用道具 举报

4

主题

117

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-8-20
在线时间
0 小时
发表于 2013-11-6 17:48:19 | 显示全部楼层
思路即,按4字节取到CPU寄存器后,再做移位及舍弃某些数据处理
回复 支持 反对

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
 楼主| 发表于 2013-11-7 15:45:19 | 显示全部楼层
回复【2楼】dzng11:

unsigned short pBuffer[100];
pBuffer[i++]=*(volatile unsigned short *)ADDR;//读取2个字节. 
ADDR+=2;//偏移2个字节.

---------------------------------
恩,已经搞定了,谢谢哦~呵呵,按步执行,一点点校对过的,哈哈
回复 支持 反对

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
 楼主| 发表于 2013-11-7 15:45:36 | 显示全部楼层
回复【3楼】aleda303:
---------------------------------
谢谢,搞定了
回复 支持 反对

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
 楼主| 发表于 2013-11-7 15:45:50 | 显示全部楼层
回复【5楼】lanny_cn:
---------------------------------
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-9 14:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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