[STM32F1] 关于STM32的思考求解惑

[复制链接]
1201|15
 楼主| 布丁奶茶 发表于 2016-10-17 14:58 | 显示全部楼层 |阅读模式
我们都知道STM32每次都能处理32位的数据。那么如果我要处理的数据是8位的或者16位的,那STM32是怎么存储这些数据的呢?例如8位数据,我是存在四个32位内存中,每个内存用低四位,还是分别存在一个内存的四个字节呢?另外STM32的地址可以是8位或者16位吗?
新手,求大神解惑
 楼主| 布丁奶茶 发表于 2016-10-17 14:59 | 显示全部楼层
补充一下,上面打错了,应该是有4个8位数据
xia00 发表于 2016-10-17 20:26 | 显示全部楼层
另外STM32的地址可以是16位的啊!!
734774645 发表于 2016-10-17 21:37 | 显示全部楼层
不会也占用32bit吧?
戈卫东 发表于 2016-10-17 21:52 | 显示全部楼层
可以按字节(8位)/半字(16位)/字(32位)访问存储器。
某些核心需要对齐,某些可以不对齐,但效率可能下降。
 楼主| 布丁奶茶 发表于 2016-10-18 09:28 | 显示全部楼层
戈卫东 发表于 2016-10-17 21:52
可以按字节(8位)/半字(16位)/字(32位)访问存储器。
某些核心需要对齐,某些可以不对齐,但效率可能下 ...

我想知道的是我存四个字节的,一般没做设定,32是怎么存的呢
 楼主| 布丁奶茶 发表于 2016-10-18 09:30 | 显示全部楼层
xia00 发表于 2016-10-17 20:26
另外STM32的地址可以是16位的啊!!

谢谢了。。
 楼主| 布丁奶茶 发表于 2016-10-18 09:42 | 显示全部楼层
734774645 发表于 2016-10-17 21:37
不会也占用32bit吧?

没懂。
icecut 发表于 2016-10-18 10:41 | 显示全部楼层
想想结构体是怎么存储的,就明白了....内存中是连续的,不会浪费
diweo 发表于 2016-10-18 11:42 | 显示全部楼层
“我们都知道STM32每次都能处理32位的数据。那么如果我要处理的数据是8位的或者16位的,那STM32是怎么存储这些数据的呢?“

你的逻辑搞反了!
不是说我想怎么处理这些数据,决定我怎么存储这些数据。
而是:数据始终存在那里,然后我以怎样一种方式来处理它。
STM32每次都能处理32位的数据,就是一次性处理4个字节。当然,它也可以一次性处理2个字节,或者1个字节。
 楼主| 布丁奶茶 发表于 2016-10-18 14:48 | 显示全部楼层
diweo 发表于 2016-10-18 11:42
“我们都知道STM32每次都能处理32位的数据。那么如果我要处理的数据是8位的或者16位的,那STM32是怎么存储 ...

那32的最小存储单元是8位的对吗?有没有最小存储单元大于8位的
wahahaheihei 发表于 2016-10-18 15:30 | 显示全部楼层
楼主可以用联合体进行测试一下看看到底怎么存的。弄个32位的,然后弄4个八位的,打印出来对比一下,看看是怎么取的范围。
 楼主| 布丁奶茶 发表于 2016-10-18 15:46 | 显示全部楼层
wahahaheihei 发表于 2016-10-18 15:30
楼主可以用联合体进行测试一下看看到底怎么存的。弄个32位的,然后弄4个八位的,打印出来对比一下,看看是 ...

好的,谢谢
1203030117 发表于 2016-10-18 16:22 | 显示全部楼层
实践是检验真理的唯一标准,不要拿着理论去强行解释理论,你拿stm32用着用着就自然明白怎么回事了
大鱼吃小鱼,小鱼吃虾米。不要以这句话为基准去思考大鱼到底吃不吃虾米,怎么吃虾米,这东西,别人再怎么清楚的告诉你,最多也只是个详解,
你不去实践一下,根本没办法去理解其中的东西。学这东西又不是为了考试。
lefeng 发表于 2016-10-18 20:21 | 显示全部楼层
内存中是连续的,不会浪费的
734774645 发表于 2016-10-20 22:06 | 显示全部楼层
icecut 发表于 2016-10-18 10:41
想想结构体是怎么存储的,就明白了....内存中是连续的,不会浪费

那就是不会出现高位补充0的情况,直接就是8bit
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

180

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部