www问答网
所有问题
在STM32中#define FLASH_ACR (*(volatile unsigned long *)0x40022000)是什么意思呢??
本人是个菜鸟,请各位高手指点一下!
举报该问题
推荐答案 2012-01-11
long是32位整型,unsigned指无符号数,左边的*表示取内容
volatile表示易变的,告诉编译器不要优化,这个地址的内容不一定是在程序中改变的。
volatile unsigned long *表示将后面跟的内容转化成一个指针,并且是指向一个易变的无符号整数。
左边再加个*,表示取该指针指向地址的内容。
总的意思是取那个内存单元(内存地址0x40022000)里存的数,并将这个数转化为无符号整数
请参考指针的概念
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://www.wendadaohang.com/zd/K3n4dWG41.html
其他回答
第1个回答 2012-01-10
意思就是用 FLASH_ACR 来代替后面(*(volatile unsigned long *)0x40022000)这串东西。。
程序里面要用到(*(volatile unsigned long *)0x40022000)的时候直接用FLASH_ACR代替就可以了。
可以参考下c语言的#define语法,0x40022000可以参考stm32官方文档,是flash的一个寄存器的地址。。
第2个回答 2012-04-05
将FLASH_ACR定义为 (异变的长整形指针)地址0x40022000 的值
说明白点就是flash 0x40022000地址中的值
相似回答
大家正在搜
相关问题
#define I2C0CONSET (*((volatil...
#define SFR(name,addr) __sfr _...
#define SFR(name,addr) __sfr _...
51单片机、stm32中sfr和define的定义问题求解!...
volatile unsigned int 什么意思
#define ADDR (*(volatile long ...
翻译STM32 #define __IO volatile ...
STM32编译出错