基于上篇我们已经基本了解了软件界面和如何创建一个项目了

接着我们看如何利用外部按键来控制LED灯的亮灭,即外部中断。

(本文讲述的是外部中断控制led取反以及如何实现流水灯)

(如果想了解外部中断如何控制led流水灯,请看我另一篇文章,http://t.csdn.cn/8KryH)

  • 点击RCC
  • 2高速时钟(HSE)选择外部晶振
  • 3 软件自动配置管脚
  • 32的时钟树框图
  • 如果不懂的话 也可以参考Z小旋的 《【STM32】系统时钟RCC详解(超详细,超全面)》https://blog.csdn.net/as480133937/article/details/98845509

GPIO初始化

LED:4个GPIO_OUTPUT (输出模式)

按键:2个GPIO_EXITx(外部中断模式)

配置完了之后我们要在NVIC中打开外部中断

编译,进入编译界面

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//外部中断回调函数
{if(GPIO_Pin==K1_Pin)//如果按键为K1(我们备注为K1){for(long i =1; i<72000;i++)//消抖{}if (HAL_GPIO_ReadPin(K1_GPIO_Port,K1_Pin)==1)//如果按键按下{HAL_GPIO_TogglePin(D1_GPIO_Port,D1_Pin);//取反函数 改变IO口高低电平}__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);//中断清理,防止影响下次按键}
}

这样我们就实现了按键一下就改变LED亮灭。

这时我们还想实现一下LED流水灯

配置SYS可编译,然后

配置各个引脚,第一个输出电平设为High,然后备注为D1,D2,D3,D4(自行定义,也可以不备注,主要为了便于记忆和引用)

因为要一直循环,所以要写在它系统生成的while里面。

HAL_GPIO_WritePin(GPIOE,D1_Pin,0);//写低电平,点亮第1个LEDHAL_Delay(1000);//延时1000毫秒HAL_GPIO_WritePin(GPIOE,GPIO_PIN_9,GPIO_PIN_SET);//灯灭,第二种写法//中间不延时,1灯灭�?2灯亮HAL_GPIO_WritePin(GPIOE,D2_Pin,0);//写低电平,点亮第二个LEDHAL_Delay(1000);//延时1000毫秒HAL_GPIO_WritePin(GPIOE,GPIO_PIN_11,GPIO_PIN_SET);//第二个灯亮HAL_GPIO_WritePin(GPIOE,D3_Pin,0);//写低电平,点亮第2个LEDHAL_Delay(1000);//延时1000毫秒HAL_GPIO_WritePin(GPIOE,GPIO_PIN_13,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOE,D4_Pin,0);HAL_Delay(1000);//延时1000毫秒HAL_GPIO_WritePin(GPIOE,GPIO_PIN_14,GPIO_PIN_SET);

这样就可以实现LED循环亮灭。

持续更新中...

STM32cubeIDE学习汇总(二)----外部中断控制LED和流水灯相关推荐

  1. CC2530基础实验:(2)外部中断控制LED亮灭

    目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 1.中断相关的基础概念 2.CC2530 的中断系统 3.CC2530 的中断处理函数编写方法 4.CC2530 的外部中断 三.源码分析 前 ...

  2. [stm32] Start Tour-利用外部中断控制LED亮灭

    如果觉得不错就点个赞吧~ 目录 一  元件相关 二 面包板上的连线 三 具体代码 传感器驱动代码(跟独立按键那个差不多) 中断函数代码(外部中断) main.c 四  最终效果 效果图: 一  元件相 ...

  3. 定时器中断控制LED闪烁(每隔1s)---普中科技开发仪

    定时器中断o,利用中断控制LED闪烁每隔1s闪烁一次(精确的1s) notes: (1)工作方式寄存器TMOD ,低四位用于To,高四位用于T1,(GATE,C/T- ,M1,M0) 一般让GATE ...

  4. STM32之中断控制LED灯

    STM32中断控制LED灯 一.中断 1. 中断地址 2. 中断优先级 3. 中断响应过程 二.新建工程 三.编写代码 四.运行结果 五.总结 参考 一.中断 在处理器中,中断是一个过程,即CPU在正 ...

  5. STM32中断控制LED灯亮灭

    目录 一.中断介绍 1.中断分类 硬件中断(Hardware Interrupt) 软件中断(Software Interrupt) 2.中断优先级 3.中断源种类 4.中断响应原则 二.新建项目 1 ...

  6. STM32系统学习——EXTI(外部中断)

    一. EXTI 简介 EXTI(External interrupt/event controller)-外部中断/事件控制器,管理了控制器的 20个中断/事件线.每个中断/事件线都对应有一个边沿检测 ...

  7. 用51单片机中断控制LED灯亮灭

    用51单片机中断控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void dela ...

  8. 【嵌入式】按键中断控制 LED 跑马灯实验

    [嵌入式]按键中断控制 LED 跑马灯实验 1. 操作内容 2. 原理解释 2.1 实验箱按键电路 2.2 实验箱LED电路 2.3 寄存器说明 3. 操作步骤 3.1 编写键控制 LED 代码,将代 ...

  9. Arduino程序设计(二) 按键控制LED灯

    按键控制LED灯程序设计 前言 一.按键控制LED灯--内部上拉(基础) 二.按键控制LED灯--外部上拉(基础) 三.按键控制LED灯(进阶) 总结 参考文献 前言 本文主要介绍三种按键控制LED灯 ...

最新文章

  1. c语言findnext递归扫描文件,C++用FindFirstFile、FindNext递归遍历硬盘的文件-Go语言中文社区...
  2. 整数行hdu 1244 Max Sum Plus Plus Plus(dp)
  3. Linux下xz与tar的区别
  4. 无限网络无限连接掉网的解决
  5. jedisPool.getResource()方法长时间无响应并且不报错
  6. 多线程 java 实例_Java多线程实例学习
  7. 常见的股票技术因子学习以及计算
  8. 大数据学习(06)-- 云数据库
  9. Collections常用方法总结
  10. Windows 技术篇-cmd命令查看系统启动时间、操作系统信息、内存使用情况、电脑配置信息
  11. html中span隐藏属性,span标签的class属性
  12. 吃了知乎月饼,成了「喷射战士」
  13. edcoder数据结构第1关:基于BF算法的病毒感染监测
  14. Designing Data-Intensive Application《数据密集型应用系统设计》笔记
  15. 【图书管理系统】附源码+教程
  16. SpringBoot——使用拦截器拦截未登录用户
  17. vue_按需引入elment、echarts和路由懒加载,减少打包体积
  18. PWNFEST黑客大会:苹果Safari与微软Edge浏览器均被攻破
  19. 如何去除discuz的powered by discuz!代码
  20. QSFP-DD封装有何优势?800G光模块是否会沿用QSFP-DD封装?

热门文章

  1. 【面经】北大医信一面
  2. Python语言程序设计(嵩天老师版)第三周代码解析——字符串部分
  3. 栈内存与堆内存,堆内存的使用与理解。
  4. java实现遍历一个字符串的每一个字母(总结)
  5. 天道酬勤,妹子在粤嵌找到自己的目标
  6. 二手手机十分管用的检查方法
  7. Python3.6和Spyder安装
  8. 大疆雷达livox avia的bag包转pcd
  9. 【MATLAB】点云数据处理程序可视化实现1
  10. 曲面屏手机截屏图片像素与手机像素不一致