永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-02-05 20:51
  • 提问者网友:绫月
  • 2021-02-04 21:09
STM32F103的寄存器操作时,为什么没有用位定义
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-02-04 21:48
把寄存器定义为结构体,寄存器里的位都是“位域”,例如:
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)
在程序中访问时这样:
全部回答
  • 1楼网友:青灯有味
  • 2021-02-04 22:51
rcc_cfgr寄存器的第15、14位表示的是adc预分频,上式是将这两位清0,对于这两位有如下表述: 00:pclk2 2分频后作为adc时钟 01:pclk2 4分频后作为adc时钟 10:pclk2 6分频后作为adc时钟 11:pclk2 8分频后作为adc时钟
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯