结构体作为参数
HAL_GPIO_Init函数的第一个参数GPIOx就是经过文本替换后的寄存器基地址和偏移地址,所以不需要加取地址符。而HAL_GPIO_Init函数的第二个参数是结构体,LED_GPIO_Init是结构体指针(指针的指针),所以需要加取地址符(&)。
按键控制原理
WK_UP设置 下拉模式,此时读取相应引脚电平是低电平;当WK_UP被按下,读取到的电平是高电平。
KEY0和KEY1设置上拉模式,此时读取相应引脚电平是高电平;当KEY0或KEY1被按下,读取到的电平是低电平。
位带操作(简)
位带操作就是把每个比特膨胀为一个32位的字,当访问这些字的时候就达到了访问比特的目的,一般用于IO口的输入输出。这样就可以实现像操作51单片机引脚那样,引脚名=1即输出高电平,引脚名=0即输出低电平。
STM32 RCC知识
RCC外设管理的是对stm32芯片的复位和时钟控制进行管理。
F103的时钟系统
对于STM32上的时钟,可根据需求来配置(也要根据芯片运行的工作条件来选,不可超过最大值)。时钟频率越高,功耗也会更高,抗电磁干扰能力也会越弱。
当需要配置STM32的时钟时,可以直接用 CubeMX的clodk configuration进行配置后,生成相应文件,并在MDK—ARM里打开工程,就能在main.c下的SystemClock_Config(void)函数中找到配置好的代码。
复位功能
系统复位:系统复位将把 除 时钟控制寄存器CSR中的复位标志 和 备份区域中的寄存器 以外的所有寄存器 复位为它们的复位数值。
电源复位:电源复位将复位除了备份区域外的所有寄存器。
后备域复位:备份区域拥有两个专门的复位,它们只影响备份区域。
端口复用和重映射
一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。