首先对STM32中存储数据的地方有一个了解
一个是FLASH,一个是RAM
RAM是易失存储器,FLASH是非易失存储器,这是最直观的解释。
主要记住以下几点:
RAM(随机存储器):既可以从中读取数据,也可以写入数据,但电源关闭时,存于其中的数据就会丢失。
:RAM的读写速度相对FLASH是很快的,但是掉电丢失。
:heap stack data(变量)都在RAM中存储
FLASH(闪存):不会掉电丢失数据。主要用来存储代码和cost data
其次对stm32中FLASH和RAM的内存地址的认识
stm32中的RAM一般是SRAM(静态随机存储器),起始地址为0x20000000
Flash的起始地址为0x80000000.
也可以在设置里边看到
然后对一个固定的地址写入一个值
int *p=(int*)0x20003000;
*p=0xFCF;
这样就代表将值写入到了0x20000000这个地址了
对写入的值进行调试查看
点击memory窗口,在address中输入地址,就可以查看到
总共有8个数字变了颜色(这是16进制的数,相当于是一个是4位,两个相当于8位,即一个byte)
可以看到显示的是CF 0F 00 00
在STM32微控制器中,RAM的大小通常以字节(byte)为单位进行度量。
CPU:STM32F103RCT6,LQFP64,FLASH:64KB,RAM:20KB
1、写入值的值的大小取决于RAM的总大小以及选择的数据类型 例如 stm32F103C8T6的RAM为20kb 20*1024=20480个字节
2、并且想在0x20003000写入一个值,这个值的最大的大小为32的无符号整型 32位的无符号的整形占4个字节,意味写入的最大值为0xFFFFFFFF
3、注意写入的值有大小端的问题