初级会员

- 积分
- 145
- 金钱
- 145
- 注册时间
- 2017-9-28
- 在线时间
- 43 小时
|
15金钱
typedef struct
{
__IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */
__IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */
__IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */
__IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */
__IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */
__IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */
__IO uint32_t BSRR; /*!< GPIO port bit set/reset register, Address offset: 0x18 */
__IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */
__IO uint32_t AFR[2]; /*!< GPIO alternate function registers, Address offset: 0x20-0x24 */
} GPIO_TypeDef;
一直definition到最底层 看到了这个结构体,后面注释了这些寄存器的address offset,但是找不到它们是在哪里被赋值的,
(另外这个是stm32f767 HAL库,感觉这是一个通用的问题,所以就在这个板块提问了! )
|
最佳答案
查看完整内容[请看2#楼]
我突然明白了!!
这是一种以偏移量访问结构体变量的方式!!
uint32是32位4个字节,所以这个结构体里的变量的偏移量是以4位单位累加的!!
|