文章目录
一、HEL库GPIO端口3只LED红绿灯的周期闪烁
1.CubeMX建项目
1.创建新项目
2.选择芯片(STM32F103C8T6)
3.SYS选择
4.RCC选择
5.设置对应的引脚
6.时钟设置
7.文件路径及命名
8.生成项目
2.main.c中写入代码
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灭
3.编译下载
4.烧录现象
HAL库流水灯
二、采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作
1.中断引脚与输出引脚配置
2.优先级选择
3.代码展示
在 HAL _ GPIO _ EXTI _ Callback ()函数中设置标志位
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == GPIO_PIN_0)
{
index = 1;
}
if(GPIO_Pin == GPIO_PIN_1)
{
index = 0;
}
}
在main函数中实现主要功能
while (1)
{
if(index==0)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
HAL_Delay(100);
}
}
三、使用Keil的软件仿真逻辑分析仪功能观察LED管脚的时序波形
1.环境配置
2.仿真结果
总结
HAL库开发比起标准库开发更加便捷高效,利用HAL库开发可以再之后的项目中大大增加其便捷性。