中断方式实现LED点亮点灭

目录

一、使用CubeMX生成代码

 二、代码补充

三、 LED点亮点灭

 四、参考资料


一、使用CubeMX生成代码


打开CubeMX,点击ACCESS TO MCU SELECTOR创建新项目

  在Part Number处选择芯片,我这里用的是STM32F103C8T6,所以选择的是STM32F103C8,选择芯片之后再点击Start Project 

点击System Core,点击RCC,按照如下选择

 点击SYS,Debug选择Serial Wire

 

点击GPIO设置管脚,我设置的是开关接PA1管脚,LED接PB5管脚,PA1选择GPIO_EXTI1,PB5选择GPIO_Output

 

 

PA1按如下设置

 

PB5按如下设置

 

点击NVIC,勾上Enabled 

 

点击Clock Configuration,按照如下设置 

 

点击Project Manager,设置名称路径,修改设置如下,然后点击GENERATE CODE,生成工程 

 

 二、代码补充

打开生成的工程文件

 在main.c文件中添加回调函数代码,在/* USER CODE BEGIN 0 */和/* USER CODE END 0 */之间添加如下代码

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  /* Prevent unused argument(s) compilation warning */
  HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
  /* NOTE: This function Should not be modified, when the callback is needed,
           the HAL_GPIO_EXTI_Callback could be implemented in the user file
   */
}

 

 编译生成.hex文件

三、 LED点亮点灭

连接电路,BOOT0置1

连接电路如下所示,灯泡正极、负极接3.3v、B5,A1作为开关 

 

 烧录程序

烧录完成后,BOOT0置0,并按下复位键,具体实现如下

 

可以看到,当PA1连接灯泡负极时,频闪的LED灯变为常亮,当PA1连接灯泡正极时,频闪的LED灯熄灭 

 四、参考资料

嵌入式:STM32F103中断方式点亮LED流水灯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值