目标
- 直接控制寄存器,点亮红色LED灯。
- 网盘例子代码为register_lightup_led
分析
- 结合原理图,点亮三色灯的红灯。PH10引脚。 低电平点亮。
- 寄存器主要需要使能GPIOH的时钟,设置IO口为推挽输出模式,低电平。
寄存器分析
RCC相关寄存器
寄存器名字为RCC_AHB1ENR,offset是RCC_BASE的0x30。
该寄存器控制AHB1上设备的主时钟开关。
其中GPIOXEN用于使能对应的GPIO时钟开关。
GPIO相关寄存器
GPIO相关寄存器有多个,本文主要使用下列几个
- GPIOx_MODER
设置对GPIO口的模式:
00: Input (reset state) ,输入模式
01: General purpose output mode,一般输出模式
10: Alternate function mode,复用模式
11: Analog mode,模拟模式 - GPIOx_OTYPER
设置输出引脚的输出方式:(可以参考关于推挽模式文章。)
0: Output push-pull (reset state),推拉模式,高低切换的速度较快。
1: Output open-drain,开漏输出,PMOS被关闭,高电平输出为高阻态。 - GPIOx_OSPEEDR
设置GPIO引脚的切换速度。
0