引言吧>_<
本人自己在b站(01Studio 叫这个up主,大家可以去看看,极力推荐)学习了一下stm32hal库,去准备蓝桥杯嵌入式组,今年第一次参赛,本着学习新知识的目的,去以赛促学,这篇系列的文章,记录一下我本人的备赛经历和经验分享,自己也是初学者,有很多不对的地方,还请批评指正,多多包涵。
一开始肯定是工程的建立
1.首先打开stm32cubemax,点击我的红色方块里面的东西:
2.点击这个new project
3.选择芯片的型号( 注意别选错啦),双击我所勾选的内容,即可弹开新界面。
4,选择这个sys,点击
配置debug为serial wire
5. 点击这个rcc
配置为高速时钟
6.点击这个时钟配置
注意要配置这四个东西(自己就是有一次马虎,忘记第一个配置导致自己花了一个晚上,希望大家别出这种错误。)
看下面这些数据,输好这些数据就可以按回车健,将自动配置完全。
7.选择文件管理( project manager),选中project
文件名字自己取一个,选择MDK-ARM
再勾选code generaor 中我所画上红色勾勾
8.生成文件啦,点击右上角的generate code
打开工程,点击编译,工程建立成功咯
点灯
配置led 的gpio,配置为输出模式,然后生成文件。
选择一下烧录的方式
在最前定义一个变量,用于控制led亮灭的。
int t_led = 0x00;
写Led控制的函数
/*蓝桥杯的板子,led是高点平点亮,低电平熄灭*/
void led_display(char uled)
{
/*让高八位的莫一个置为低电平*/
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC,uled<<8,GPIO_PIN_RESET);
/*使用锁存器,将值给锁存到里面去*/
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
在mian中使用这个函数
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
t_led |= 0x01;/*这样可以只控制莫一个灯,不去影响其他的*/
led_display(t_led);
}
点亮成功,这个系列的第一篇总算是结束了。看完这篇,你也是点灯大师的其中一员了,让我们在下一篇继续相见。