本文主要是介绍如何访问寄存器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
标题
- 方式一:对地址进行宏定义
- 方式二:用结构体封装寄存器
访问寄存器是CPU执行程序的基础,每种CPU架构都有其特定的寄存器集合和访问方式。
方式一:对地址进行宏定义
#define GPIOA_BASE ((unsigned int)0x48000000)
#define GPIOA_ODR (GPIO_BASE + 0X14)
//读操作
val1 = *(unsigned int*)GPIOA_ODR
//写操作
*(unsigned int*)GPIOA_ODR = val2
方式二:用结构体封装寄存器
typedef struct{uint32_t MODER;uint32_t OTYPER;uint32_t OSPEEDR;uint32_t IDR;uint32_t ODR;uint32_t BSRR;uint32_t LCKR;
}GPIO_TypeDef;//定义首地址
#define GPIOA_BASE ((unsigned int)0X48000000)
#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE)
//访问方式
//这行代码是在操作GPIO端口的输出数据寄存器,而不是设置内存地址。
//0x14是作为数据被写入到寄存器中,以控制GPIO引脚的输出状态。
GPIOA->ODR = 0x14;
这篇关于如何访问寄存器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!