单片机学习小组
直播中

张浩

7年用户 1145经验值
私信 关注

如何用GPIO端口完成3只LED红绿灯的周期闪烁?

如何用GPIO端口完成3只LED红绿灯的周期闪烁?

回帖(1)

张佳婧

2022-2-10 09:59:43
(一)CubeMX建项目

1.新建File->Project
2.选择芯片STM32F103C8
3.SYS选择
4.RCC选择
5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT
6.Clock Configuration设置 7.Project Manager合理设置
8.创建完成并用keil打开
(二)main.c代码修改

1.在while(1)中输入以下代码


   
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
                HAL_Delay(500);//延时0.5s
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
                HAL_Delay(500);//延时0.5s               
                HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
                HAL_Delay(500);//延时0.5s
                HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
                HAL_Delay(500);//延时0.5s
               
                HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
                HAL_Delay(500);//延时0.5s
               
                HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
                HAL_Delay(500);//延时0.5s


(三)烧录运行结果

1.打开mcuisp,进行烧录
2.烧录结果

三、波形观察

1.设置Debug
2.点击调试,选择逻辑分析仪
3.选择要观察的引脚:
点击Setup Logic Analy,输入(PORTB & 0X00000000)>>0、Display Type选择Bit,依次输入(PORTA & 0X00008000)>>15、(PORTC & 0X00002000)>>13
4.运行波形图
四、总结

本次流水灯实验,理清了流水灯的原理,首先是包括GPIO配置、设置 GPIOx 某个引脚的默认电平,配置 GPIOx 引脚号、输入/输出方式、输出速度/输入类型。实现流水效果(main 函数),需要一个 while 循环,保持程序一直运行,调用延时函数 HAL_Delay(1000),延时1000s,实现流水效果。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分