现实生活中呢,我们自己的家庭住址信息是很私密的一个信息,一般来说,我们不会主动告诉陌生人的。在C程序中呢,一个变量的地址信息其实也是私密的,但是呢,我们还是可以通过某种方式查看到,下面的代码就能查看变量的地址信息:intx=4;coutu003cu003cu0026x;这两句话就能看到整型变量x的地址,其实也就是x的指针。

一个字节等于8位。1个BYTE即8bit(8位),一个字节无法直接定义一个bit,不过你可以在某个固定地址开辟一个空闲区域(可以是一个Byte,也可以是多个Byte),然后用STM32的位访问方式去访问这个区域的指定位(bit),具体算法请参考STM32的数据手册。另外C语言的struct提供了一个按bit定义的方法,如typedefstruct{unsignedchara:1;

#defineBank1_LCD_C((uint32_t)0x)0x地址是一个无符号32位数,(__IOuint16_t*)(Bank1_LCD_C)将0x地址转换成指向一个类型为__IOuint16_t的指针。*(__IOuint16_t*)括号前面的*号是取值。(u32*)(00.)表示取这个地址所存储的内容,前面的u32表示该内容代表一个无符号的32位数值。
3、stm32固件库定义基础地址的时候为什么用了unsignedint?4、如何分配变量到指定的地址前面只是定义了一个基准常量。(加不加unsignedint应该影响不大吧,通常会默认分配大小吧,加了能确保系统分配到足够的连续的存放空间)它这个常量是和后面的偏移量合在一起后才加*转成地址,也就不会你想那样单独当地址用,或者人家用的时候再加*强制转化成地址。都是根据自己要怎么用,所以才做什么样定义,注意定义前面还有一个*号,意味着这是一个对指定地址的寄存器的访问,如果没有这个定义,就是一个指针了。