STM32F103的寄存器操作时,为什么没有用位定义

2025-04-27 12:15:15
推荐回答(1个)
回答1:

把寄存器定义为结构体,寄存器里的位都是“位域”,例如:
typedef struct {
uint8_t enable : 1;
uint8_t tick_int : 1;
uint8_t clk_source: 1;
uint16_t : 13;
uint8_t count_flag : 1;
} Systick_Ctrl;
然后定义该寄存器的指针:
#define SYSTICK_CTRL ((Systick_Ctrl*) 0xe000e010)
在程序中访问时这样: