一片伟大的净土

灵魂的归处,肉体的坟墓。

用库函数点亮stm32最小系统板的指示灯

个人感觉控制硬件应该都是这三个步骤。
什么是时钟,什么是使能,什么是RCC,如何配置参数这些就懒得说了,基本概念谷歌+gpt了解即可

使用端口三个步骤:使能时钟->配置参数->使用端口
观察开发板发现PC13端口就是一个指示灯,把他点亮

1.使用RCC时钟控制模块,使能PC13端口的时钟信号
2.使用GPIO函数来初始化端口
3.使用GPIO函数来使用初始好的端口,如设置电位GPIO_SetBits

解析:

RCC(Reset and Clock Control)时钟控制模块
GPIO(库函数,所有通用输入输出都在此处操作)
PC13端口是stm32上GPIOC(General Purpose Input/Output 通用输入/输出,C是指这个端口被分配在GPIO的C组引脚编号里面)
(为什么PC13是PortC而不是PurposeC,因为GPIO可以有多个用途,而此处PC13指代是硬件引脚,而非特定用途。)

要使能PC13,必须要启动C组的时钟信号(不能单独启动引脚13,没有这个功能,最低粒度是端口,即C组端口)
其中GPIO置于APB2上,即 Advanced Peripheral Bus 2 ,表示 高级外设总线 2
STM32 微控制器通常有两条 APB 总线:
APB1:高级外设总线 1
APB1 用于连接一些低速外设,比如定时器(如 TIM2、TIM3)、USART、I2C、SPI 等。
APB1 通常支持较低的时钟频率,适合低速外设。
APB2:高级外设总线 2
APB2 主要连接高性能外设,如 ADC、SPI、USART、GPIO、TIM1、SDIO 等。
APB2 支持较高的时钟频率,适用于性能要求较高的外设。
故使能代码为RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
Periph是外设的意思(面向对象编程,所以必须要写清楚)

GPIO_init(GPIOC,&GPIO_InitStruct)
此代码会初始化GPIOC的目标引脚(不会动其他引脚),引脚由GPIO_InitStruct结构体设定
用&而非实际变量是节省内存,毕竟这代码要写到MCU里面,一个变量就可以修改全部引脚。

GPIO_SetBits设置高电位的函数也一样,设置哪个端口组,设置哪个引脚(引脚变量是共用的,估计也是内存太少了)
ResetBits则是设置低电位