文章目录
- 一、创建CubeMX项目
- 操作步骤
- 1.STM32CubeMX创建工程
- 2.选择芯片
- 3.Pinout & Configuration配置
- 4.Clock Configuration配置
- 5.Project Manager配置
 
 
- 二、实验
- (一)LED流水灯
- 1.Keil修改代码
- 2.实验现象
- 3.keil波形仿真
 
- (二)2只LED灯的周期性闪烁
- 1.Keil修改代码
- 2.实验现象
- 3.波形仿真
 
- (三)中断控制流水灯
- 1.步骤
- 2.keil代码部分
- 3.实验现象
- 4.keil波形仿真
 
 
- 三、总结
一、创建CubeMX项目
操作步骤
1.STM32CubeMX创建工程
打开STM32CubeMX,新建工程。
 
2.选择芯片

3.Pinout & Configuration配置


 
 
4.Clock Configuration配置

5.Project Manager配置

 注意保存文件的路径不能含有中文字符。


 至此,接下来会进入keil,并自动创建keil的代码。
二、实验
(一)LED流水灯
重做上一个LED流水灯作业
1.Keil修改代码
在main()函数的while(1)循环里修改代码

直接编译,下载。
2.实验现象
20240520_001
3.keil波形仿真

 
(二)2只LED灯的周期性闪烁
用GPIO端口完成2只LED灯的周期闪烁。
1.Keil修改代码
在main()函数的while(1)循环里修改代码
代码:
	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);HAL_Delay(250); //延时0.25sHAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);HAL_Delay(250); //延时0.25s

2.实验现象
20240524_001
3.波形仿真

(三)中断控制流水灯
接上,再用GPIO端某一管脚接2个开关(用杜邦线模拟代替)。采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。(参考教材图6-12)
思路:用PB1作为开关,杜邦线一端接入PB1,另一端接入
1.步骤
①将PB0和PB1设置为外部中断源,PA8和PA9作为输出端口用来接小灯。
 
②设置中断源PB0和PB1为上升沿触发,默认为下拉输入。
 
③设置PA8、PA9输出口的速度为high。

④开启中断。
⑤查看有关中断函数
 
 
2.keil代码部分
①重写弱函数
 HAL_GPIO_EXTI_Callback(GPIO_Pin){if(GPIO_Pin == GPIO_PIN_0|GPIO_PIN_1){HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,GPIO_PIN_SET);	}
}
②main()中的while(1)循环
  while (1){HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);HAL_Delay(250); //延时0.25sHAL_GPIO_TogglePin(GPIOA,GPIO_PIN_9);HAL_Delay(250); //延时0.25s}
3.实验现象
20240524——002
4.keil波形仿真

三、总结
中断是STM32学习的一个重点,也是一个难点。要深刻理解中断标志位、明白中断开始和结束的条件,这几个关键点,才更有助于我们学习中断。