码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • STM32—按键控制LED(定时器)


    目录

    1 、 电路构成及原理图 

    2 、编写实现代码 

    main.c

    exit.c

    3、代码讲解

    4、烧录到开发板调试、验证代码

    5、检验效果 


    此笔记基于朗峰 STM32F103 系列全集成开发板的记录。

    1 、 电路构成及原理图 

    EXTI(External interrupt/event controller)—外部中断/事件控制器,管理着控制器的  20  个中断/事件线并且每个中断/事件线都对应有一个边沿(上升沿/下降沿)检测器,可以实现输入信号的边沿检测。EXTI  可对每个中断/事件线进行单独配置,可以配置为中断或者事件,
    以及触发事件的属性。STM32F103  的中断控制器支持  20 个外部中断/事件请求。

    2 、编写实现代码 

    main.c

    ​

    exit.c

    ​​ 

    3、代码讲解

    main

    初始化 HAL 库、初始化系统时钟(72Mhz)、初始化 LED、初始化按键最后初始化按键的外部中断。 因控制逻辑写在了中断服务函数里,程序运行后有中断产生时就自动运行了,所以 main 函数里也就没有什么需要处理了。 

    exit.c

    先初始化产生中断的引脚 PC8 也就是 KEY1 引脚,因KEY1 的另一个引脚连接在低电平 GND 端所以选择下降沿触发(按下按键时 PC8 引脚会由高电平被拉到低电平),也是这个原因 PC8 选择上拉即平时没有按下 KEY1 时 PC8 是高电平状态。 

    随后就要用 HAL 库函数 HAL_NVIC_SetPriority()设置中断的优先级别了,这里中断线我们选择 EXTI9_5 因前面介绍了中断线和中断服务 函 数 的 对 应 关 系 , 引 脚 PC8 对 应 的 中 断 服 务 函 数 是EXTI9_5_IRQHandler()。 

    4、烧录到开发板调试、验证代码

    ​

    5、检验效果 

    按下 KEY1 看到LED1 亮起,再次按 KEY1 键 LED1 熄灭。_______________________________________________________________

    STM32F103RCT6开发板——全集成开发板,让开发更简单!

    【全集成设计】 STM32F103RCT6开发板,采用全集成设计,集成了多种传感器和接口,让你的原型设计和开发工作更加高效。

    【资料全】 我们提供详尽的开发文档、示例代码和教程,无论你是初学者还是资深开发者,都能快速上手,轻松开发。

    【功能强大】 这款开发板搭载了高性能的STM32F103RCT6微控制器,具备丰富的外设和接口,满足你的各种开发需求。

    【接口丰富】 USB、串口、I2C、SPI等多种接口一应俱全,支持各种外设扩展,让你的创意无限延伸。

    【开发便捷】 无论是嵌入式系统开发、物联网项目还是智能家居控制,STM32F103RCT6开发板都能成为你的强大助手。

  • 相关阅读:
    解锁Spring Boot的强大配置功能:@ConfigurationProperties与@PropertySources详解
    战术资源规划中的常见挑战
    【LeetCode】658. 找到 K 个最接近的元素
    7. 矢量图层数据查询选择和保存
    【lambda表达式】Comparator接口
    Revit插件“管线分割”功能,比破解版的还好用
    怎么把产品内容做得更吸引用户?
    Web安全常见攻击
    Unity 3D模型展示框架篇之资源打包、加载、热更(Addressable Asset System | 简称AA)
    从底层看 Redis 的五种数据类型
  • 原文地址:https://blog.csdn.net/nownow_/article/details/139353036
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号