打印

stm32 地址位数相关问题疑惑,求大神指点!

[复制链接]
211|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
那个叫黑的人|  楼主 | 2019-11-28 12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32, pi, IO, se, gp
小弟最近对stm32的地址分配理解不了,很是疑惑,请大神指点~~~(我尽量把问题描述清楚哈)
如下为什么STM32官方库文件中摘取的一部分
问题1:STM32的中地址是按Bit,Byte,还是Word作为单位的?    例如0x8000000,它后面的单位是什么?
问题2:为什么有的地址是按照uint16_t,有的是按照uint32_t,这个是为什么?
问题3:如GPIOC和DMA1_Channel1,它们其实都是一个指针,按我的理解,在32位系统下,所有的指针都是占用4个Byte,那干嘛还需要区分 ((GPIO_TypeDef *) 类型指针和 ((DMA_Channel_TypeDef *)指针?
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */


#define FLASH_BASE             ((uint32_t)0x08000000) /*!< FLASH base address in the alias region */
#define SRAM_BASE              ((uint32_t)0x20000000) /*!< SRAM base address in the alias region */
#define PERIPH_BASE           ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */


#define GPIOC                      ((GPIO_TypeDef *) GPIOC_BASE)
#define DMA1_Channel1       ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE)

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

370

主题

370

帖子

0

粉丝