STM32 寄存器位段操作
把寄存羡扒器定义为结构体,寄存器里的位都是“位域”,例如:
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)
在程序空派饥中访问时这样:
...
SYSTICK_CTRL->enable = 1;
stm32
stm32g0系列支持位带操作。根据查询相关公开信息:位操作就是可以单独的对一个比特位读和写,而stm32g0系列均支持该操然派深叶商低缺作,故stm32g0系列支持位带操作。
stm32这个位带操作什么意思
是将RAM和外设中的每一个bit映射到一个独立的地址,对这个地址的32位读写操作实现对一个bit的操作,就像51单片机中的位寻址区域一样。