1、原理图
在官方给的产品手册中,可以看到控制8个LED的引脚分别为PC8-PC15,,正常来说我们只需要修改引脚的高低电平即可控制灯的亮灭,但该原理图有一个PD2引脚,我们需要先拉高再拉低才可修改PC8-PC12的引脚。
2、Cubemx基础配置
首先选择芯片型号,我们用的板子是stm32g431rbt6,我们在搜索框输入stm32g431rb,选择第二个
然后选择RCC标签,并将HSE改为修改为Crystal/Ceramic Resonator
选择SYS标签,并将Debug修改为Serial Wire
做完以上步骤,我们便可以开始配置时钟了,时钟频率按照如下配置成80Mhz,外部晶振根据官方给定的手册,设定为24Mhz。
若记不住,将①处设为24,②③处按如下配置,然后在④处输入80,系统即可帮我们自动配置好
以上步骤务必记牢,因为这是一切代码的开始,无论做什么,我们都需要进行以上的配置,后续该过程我们直接略过。
3、引脚配置
接下来,我们进行引脚配置,我们需要用的引脚是PC8-PC15和PD2,我们在芯片上点击对应的标签,将这些引脚模式配置为GPIO_Output,即完成引脚的配置。
然后进行最后一步,给文件命名(不能包含中文),保存路径也不能包含中文,编译软件选择MDK-ARM。
在生成单独的.c.h文件前面打勾。
最后点击生成代码,cubemx的配置便完成了。
4、代码编写
打开后,我们先对代码进行编译,保证0错误。
然后点击魔术棒,选择Debug,然后下载方式选择下图这种,点击Settings。
然后点击Flash Download,勾选上Reset and Run,这样我么在后续编写完程序后,不用手动按板子上的Reset按键,即可运行新程序。
打开main.c文件,即可看到代码,下面我们会看到有一个gpio.c文件,这是我们在cubemx中对引脚的配置代码,cubemx说的直白一点就是帮我们进行初始化配置的软件。
然后我们编写一点代码进行测试:
这段代码是PC8亮500ms,灭500ms的测试程序,我们前面讲过了,需要先将PD2拉高再拉低才可更改引脚的电平,于是我们就在修改PC8之前修改PD2的电平。
PS:我们的代码需要写在BEGIN 和 END之间,这样我们在更改Cubemx后我们自己写的代码才不会消失。
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET);
HAL_Delay(500);
}
然后我们编译(F7),下载(F8),记住快捷键,以后可节约很多时间。
接下来,我们看一下实际的效果:
如果做到这一步,恭喜你,已经成功学会了点灯。但是我们发现这样虽然可以点亮灯,但是会不会太繁琐了,那有没有稍微简易的方法呢。当然有,后续我们再进行点灯升级篇,以及如何同时控制多个灯,上述内容均为基础,希望各位勤加练习。
5、写在最后
本文针对于对嵌入式有一定了解,并且想要速成的同学,逻辑可能不会讲的很清楚,后续章节也是,我将分享我是如何快速构建模板的,我只是想将自己所学的内容分享给大家。第一次尝试,难免有错误,欢迎各位大佬批评指正。
我自己是结合b站的视频资源以及蚂蚁工厂的教学,构建了一套自己的模板,蓝桥杯很重要的一点就是构建一套属于自己的模板,根据题目信息,在模板做出更改。
标签:HAL,国奖,LED,PIN,引脚,配置,蓝桥,GPIO,我们 From: https://blog.csdn.net/qq_62549077/article/details/142342116