提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、用GPIO端口完成3只流水灯的周期闪烁
(一)环境配置
下载STM32CubeMX并安装HAL库,过程详见:
https://blog.csdn.net/weixin_56102526/article/details/120877293
(二)新建项目及过程
1.点击File,点击New Project
2.选择STM32F103C8T6芯片,点击start project
3.点击SYS,将Debug选择为Serial Write
4.点击RCC,将HSE选择为Crystal/Ceramic Resonator
5.点击GPIO,设置端口
6.点击Clock Configuration,并设置为如图
7.点击Project Manager,输入项目名称等
8.最后生成项目在keil中,在while(1)中输入代码
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); // 灯1亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 灯1灭
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); // 灯2亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); // 灯2灭
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // 灯3亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // 灯3灭
9.编译并生成hex文件,使用flymcu进行烧录
最终点亮效果为:
10.波形观察
二、采用中断模式编程,当开关接高电平时,LED流水灯工作;接低电平时,LED流水灯停止工作。
(一)新建项目
前面选择芯片等操作参考上面
1.选择 LED 灯引脚 PA5,设置引脚为输出模式 GPIO_Output;
选择作为外部中断的引脚 PB15,设置为与中断线 GPIO_EXTI15 连接。
2.使能引脚对应的外部中断线 EXTI line[15:10]
3.配置中断优先级
4.输入项目名称
5.导入keil并添加代码
void HAL_GPIO_EXIT_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==B1_EXIT_Pin)
{
HAL_GPIO_TogglePin(LD_1_GPIO_Port,LD_1_Pin);
}
}
6.烧录及点亮结果
参考链接:
https://blog.csdn.net/qq_47281915/article/details/121024427
https://blog.csdn.net/weixin_56102526/article/details/120877293