目录
二、采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作
三、使用Keil的软件仿真逻辑分析仪功能观察LED管脚的时序波形,分析上面按键中断时,LED灯的波形变化情况
一、用GPIO端口完成2只LED灯的周期闪烁
1、下载并安装 stm32CubeMX,建立工程
2、选择需要的芯片![](https://img-blog.csdnimg.cn/direct/6ab32424bc6e4e40bed906a9fffb55d6.png)
3、配置SYS![](https://img-blog.csdnimg.cn/direct/a1bf075ec80f46ff90ba011cf2f118a1.png)
4、配置RCC时钟![](https://img-blog.csdnimg.cn/direct/4ef510f0ee1247ee89af6b6eff107aa9.png)
5、配置GPIO引脚![](https://img-blog.csdnimg.cn/direct/86ad839a4ba840f4a1fdfee292ebb03c.png)
6、配置时钟频率![](https://img-blog.csdnimg.cn/direct/48aba8357a8d43b999f783f017202462.png)
7、命名工程,选择路径和编译软件及其版本![](https://img-blog.csdnimg.cn/direct/bc6adf15cac248dbb1a053622244b683.png)
8、分别生成.c和.h文件,生成Keil文件![](https://img-blog.csdnimg.cn/direct/6d1486a8be9f48d087875711ab7dbfe4.png)
9、打开keil文件![](https://img-blog.csdnimg.cn/direct/4abbb3ec2f8a480b8a7229652d943828.png)
10、写必要代码,实现LED灯闪烁
在main.c文件主函数的while循环中写如下代码
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
11、编译演示
注:编译烧录后需等待一段时间工程才会实现(可能)
二、采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作
1、设置输出引脚同时设置中断引脚![](https://img-blog.csdnimg.cn/direct/92fcba7c9f8440398ee89721c92214a0.png)
2、开启中断使能和中断优先级分组,这里抢占优先级均为0
其他操作与一的实验相同,这里不再进行阐述。
3、添加必要函数代码
4、演示
三、使用Keil的软件仿真逻辑分析仪功能观察LED管脚的时序波形,分析上面按键中断时,LED灯的波形变化情况
1、Debug调试
2、点击调试![](https://img-blog.csdnimg.cn/direct/23f8c45622e84ff782690d9f8732d54c.png)
3、选择逻辑分析仪![](https://img-blog.csdnimg.cn/direct/e99384cdb1514b0db17456c1479f00e4.png)
4、选择观察引脚![](https://img-blog.csdnimg.cn/direct/bdecb3266465407abb2628ab376d20f6.png)
5、运行
参考文档
1、STM32基于HAL库流水灯实验_hel库安装教程中文版-CSDN博客