STM32CubeIDE-基本使用
切换 workspace
测试代码 (让绿灯闪烁)
1 |
|
HAL_GPIO_TogglePin()
函数用于 toggle 一个引脚的状态, 第一个参数是GPIOx
, 第二个参数是具体的引脚号如GPIO_PIN_x
HAL_Delay()
函数用于暂停程序的运行
GPIO IN
将引脚设置为 GPIO_input
之后, 按下表示 0
, 放手表示 1
.
测试, 按下 button 的代码:
1 |
|
HAL_GPIO_ReadPin
: 获取指定引脚的电平值, 第一个参数是GPIOx
, 第二个参数是具体的引脚号如GPIO_PIN_x
HAL_GPIO_WritePin
: 设置指定引脚的电平值GPIO_PIN_SET
: 预定义的宏, 表明 highGPIO_PIN_RESET
: 预定义的宏, 表明 low
NUCLEO-F103RB 的 ADC
STM32 F103RB 提供 12 位的 ADC 转换, 且有 16 个通道 (意思是可以从 16 个引脚获取输入)
Register
寄存器可用于存储控制和状态信息 (比如溢出, 会设置 overflow 寄存器位).
可以通过寄存器访问一些硬件功能. 每一个 peripheral or feature 都会有自己单独的寄存器用于控制其行为.
对于 STM32 而言, 寄存器都是 32 位的.
GPIO 相关 register
下载 STM32 Register 相关 Reference Manual.
两个用于初始化 GPIO ports (如 GPIOA
, GPIOB
, 对于 STM32 而言, 每一个 port 有 16 个 pins) 的寄存器:
GPIOX_CRL
,CRL
指 “Control Register Lower”, 设置0-7
pin (每一个 pin 用 4 个 bits 控制)GPIOX_CRH
,CRH
, 指 “Control Register Higher”, 设置8-15
pin
设置的对照表为:
讲解下, 比如设置 pin1, 其控制的 4 个 bits 可以设置为 0001
, 对照 table2 (看下标), 可以知道, 其表示 Push Pull
.
CNF 通常指 “CoNFiguration”.
在代码中设置寄存器的值, 如:
1 |
|
STM32CubeIDE-基本使用
http://example.com/2024/09/26/STM32CubeIDE-基本使用/