Micropython STM32F4外部中断实验

Micropython STM32F4外部中断实验


  • 📌固件刷可参考前面一篇《STM32刷Micropython固件参考指南》
  • 🌿 相关篇《Micropython STM32F4入门点灯》
  • 📍固件下载:https://micropython.org/download/?mcu=stm32f4
  • 🔖本例程基于STM32F4DISC,主控芯片STM32F407VGT6,使用固件版本:MicroPython v1.20.0 on 2023-04-26
  • 📑mpy外部中断,可以参考Micropython官方开发参考文档:https://docs.micropython.org/en/latest/library/pyb.ExtInt.html#pyb-extint
  • 🛠开发平台基于Thonny

📓查询外部中断模块相关函数和常量

>>> from pyb import ExtInt
>>> help(ExtInt)
object <class 'ExtInt'> is of type typeline -- <function>enable -- <function>disable -- <function>swint -- <function>regs -- <staticmethod>IRQ_RISING -- 269549568IRQ_FALLING -- 270598144IRQ_RISING_FALLING -- 271646720EVT_RISING -- 269615104EVT_FALLING -- 270663680EVT_RISING_FALLING -- 271712256
  • 🌿ExtInt.disable():不使能外部中断。
  • 🌿ExtInt.enable():使能外部中断。
  • 🌿ExtInt.line():发生外部中断时,返回引脚映射到的中断线。
  • 🌿swint():从软件触发回调。
  • 常量:
    • ExtInt.IRQ_FALLING:下降沿触发。
    • ExtInt.IRQ_RISING:上升沿触发。
    • ExtInt.IRQ_RISING_FALLING:边沿触发。(上升沿或下降沿)
    • ExtInt.EVT_FALLING:下降沿事件
    • ExtInt.EVT_RISING:上降沿事件
    • ExtInt.EVT_RISING_FALLING:边沿事件
  • ✨EVT_xxx模式与睡眠模式WFE指令有关。
  • ⚡需要注意的是,在IDE中,调试执行睡眠模式相关代码,对应的调试端口号会消失。因为睡眠模式下,基本的硬件外设基本关闭了,无法进行在线调试。
pyb.ExtInt(pin, mode, pull, callback):创建中断对象
  • pin is the pin on which to enable the interrupt (can be a pin object or any valid pin name).

  • mode can be one of: - - trigger on a rising edge; - - trigger on a falling edge; - - trigger on a rising or falling edge.ExtInt.IRQ_RISINGExtInt.IRQ_FALLINGExtInt.IRQ_RISING_FALLING

  • pull can be one of: - - no pull up or down resistors; - - enable the pull-up resistor; - - enable the pull-down resistor.pyb.Pin.PULL_NONEpyb.Pin.PULL_UPpyb.Pin.PULL_DOWN

  • callback is the function to call when the interrupt triggers. The callback function must accept exactly 1 argument, which is the line that triggered the interrupt.

📝外部中断例程代码

'''
STM32F4DISC开发板引脚映射关系1=red(PD14), 2=green(PD12), 3=yellow(PD13), 4=blue(PD15)
LED_GREEN   PD12
LED_ORANGE  PD13
LED_RED     PD14
LED_BLUE    PD15IRQ_RISING -- 269549568IRQ_FALLING -- 270598144IRQ_RISING_FALLING -- 271646720
'''from pyb import Pin, ExtInt
from pyb import LED
import time # 调用sleep sleep_ms sleep_us延时函数
INT_EXT = Pin('E3', Pin.IN, Pin.PULL_UP)
LED_Pin = Pin('E13', Pin.OUT_PP)  #PC10设置为推挽输出
LED_Pin2 = Pin('E14', Pin.OUT_PP)  #PC10设置为推挽输出
# callback = lambda e: print('intr PE3 Pin')def callback(line):    LED_Pin.value(0)      #设为低电平time.sleep(0.5)LED_Pin.value(1)      #设为高电平time.sleep(0.5)print('intr PE3 Pin')print("line =", line)def led_toggle():LED_Pin2.value(0)      #设为低电平time.sleep(0.5)LED_Pin2.value(1)      #设为高电平time.sleep(0.5)ext = ExtInt(INT_EXT, ExtInt.IRQ_FALLING, Pin.PULL_UP, callback)     if __name__ == '__main__':   while True:led_toggle()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络运维与网络安全 学习笔记2023.11.28

网络运维与网络安全 学习笔记 第二十九天 今日目标 OSPF汇总之域间路由、OSPF汇总之外部路由、OSPF链路认证 OSPF安全认证之区域认证、OSPF虚链路 OSPF汇总指域间路由 项目背景 企业内网运行多区域的OSPF网络&#xff0c;在R1 上存在多个不稳定的链路 R1上的不稳定链路&a…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

数据结构-交换排序(冒泡、快速)

冒泡排序 基本思想 先将第一个记录与第二个记录比较&#xff0c;将较大的记录放到第二个位置上&#xff0c;之后再将第二个记录与第三 个记录比较&#xff0c;将较大的记录放到第三个位置上&#xff0c;如此类推&#xff0c;知道比较完最后一个位置&#xff0c;此时注意到 …

红队攻防之hash登录RDP

没什么好害怕&#xff0c;孩子放心去飞吧&#xff0c;在你的身后有个等你的家 Restricted Admin Mode 受限管理模式是一项 Windows 功能&#xff0c;可防止将 RDP 用户的凭据存储在建立 RDP 连接的计算机的内存中。 这是用来防止用户&#xff08;管理员&#xff09;在 RDP 进…

shopee数据:如何获取Shopee平台的数据

在如今快速发展的跨境电商市场中&#xff0c;Shopee&#xff08;虾皮&#xff09;作为一个备受关注的平台&#xff0c;主要服务于东南亚市场。对于卖家来说&#xff0c;了解Shopee平台的数据是非常重要的&#xff0c;因为这可以帮助他们更好地了解市场趋势、优化商品策略并提高…

Ubuntu 20.0 + mysql 8.0 用户和密码修改

第一步 下载&#xff08;简单,注意联网&#xff09;Ubuntu 终端输入以下两行命令 (1) 数据库的服务端及客户端数据库的开发软件包 sudo apt-get install mysql-server mysql-client (2) 数据库的开发软件包 sudo apt-get install libmysqlclient-dev 第二步 查看是否安装成功 …

血的教训--redis被入侵之漏洞利用复现--总览

血的教训–redis被入侵之漏洞利用复现–总览 相信大家对于自己的服务器被入侵&#xff0c;还是比较憎恨的&#xff0c;我的就被攻击了一次&#xff0c;总结经验&#xff0c;自己也是整理了这一个系列&#xff0c;从最基础到最后面的自己总结被攻破的步骤&#xff0c;非常清晰的…

20世纪30年代的大危机

背景 1929年9月&#xff0c;美国财政部部长安德鲁梅隆向公众保证“现在没有担心的理由&#xff0c;这一繁荣的高潮将会继续下去”。 当时流行的一首儿歌&#xff1a;“梅隆拉响汽笛&#xff0c;胡佛敲起钟&#xff0c;华尔街发出信号&#xff0c;美国往地狱里冲&#xff01;”…

Elasticsearch:向量搜索 (kNN) 实施指南 - API 版

作者&#xff1a;Jeff Vestal 本指南重点介绍通过 HTTP 或 Python 使用 Elasticsearch API 设置 Elasticsearch 以进行近似 k 最近邻 (kNN) 搜索。 对于主要使用 Kibana 或希望通过 UI 进行测试的用户&#xff0c;请访问使用 Elastic 爬虫的语义搜索入门指南。你也可以参考文章…

聚观早报 |红魔9 Pro开卖;真我GT5 Pro定档

【聚观365】11月29日消息 红魔9 Pro开卖 真我GT5 Pro定档 一加12镜头细节公布 Redmi K70 Pro将搭载夜枭算法 苹果Vision Pro头显下月量产 红魔9 Pro开卖 红魔电竞旗舰最新力作——红魔9 Pro系列正式发布。作为一款全能电竞旗舰&#xff0c;该机搭载了第三代骁龙8移动平台…

计网Lesson4 - 计算机组网模型

文章目录 计算机的连接方式1. 两台计算机的互联2. 多台计算机的互联&#xff08;旧式&#xff09;3. 多台计算机的互联 --- 集线器&#xff08;Hub&#xff09;4. 网桥5. 多台计算机的互联 --- 交换器&#xff08;Switch&#xff09; 计算机的连接方式 1. 两台计算机的互联 网…

web框架,django,路由控制,视图层(补充)

web框架 是什么&#xff1f; web 框架是什么---》别人帮咱们写了一些基础代码---》我们只需要在固定的位置写固定的代码--》就能实现一个web应用 Web框架&#xff08;Web framework&#xff09;是一种开发框架&#xff0c;用来支持动态网站、网络应用和网络服务的开发。这大多…

漏洞扫描-德迅云安全漏洞扫描服务

漏洞扫描是指基于漏洞数据库&#xff0c;通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测&#xff0c;发现可利用漏洞的一种安全检测的行为。 漏洞扫描的主要目的是发现系统、网络或应用程序中可能存在的安全漏洞和缺陷&#xff0c;以便及时修复这些漏洞和缺…

python实验3 石头剪刀布游戏

实验3&#xff1a;石头剪刀布游戏 一、实验目的二、知识要点图三、实验1. 石头剪刀布2. 实现大侠个人信息 一、实验目的 了解3类基本组合数据类型。理解列表概念并掌握Python中列表的使用。理解字典概念并掌握Python中字典的使用。运用jieba库进行中文分词并进行文本词频统计。…

C/C++ 发送与接收HTTP/S请求

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于传输超文本的协议。它是一种无状态的、应用层的协议&#xff0c;用于在计算机之间传输超文本文档&#xff0c;通常在 Web 浏览器和 Web 服务器之间进行数据通信。HTTP 是由互联网工程任务组&#xff08;IETF…

上海亚商投顾:沪指震荡反弹 汽车产业链掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日震荡反弹&#xff0c;北证50指数跌超4%&#xff0c;近50只北交所个股跌超10%。 新能源车产业链掀…

不同路径 II(力扣LeetCode)动态规划

不同路径 II 题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。…

【Android Jetpack】Hilt 依赖注入框架

文章目录 依赖注入DaggerHiltKoin添加依赖项Hilt常用注解的含义HiltAndroidAppAndroidEntryPointInjectModuleInstallInProvidesEntryPoint Hilt组件生命周期和作用域如何使用 Hilt 进行依赖注入 依赖注入 依赖注入是一种软件设计模式&#xff0c;它允许客户端从外部源获取其依…

智能井盖传感器怎么监测井盖倾斜?

城市道路上的井盖是常见的安全隐患&#xff0c;由于井盖质量不过关、安装不合理等原因导致的井盖位移或倾斜等事故&#xff0c;每年都处于不断增加的状态。为了减少此类案件的发生并维护社会治安&#xff0c;国家相关部门已经制定了多项政策法规对井盖进行统一监管。鼓励各个城…

有哪些不错的golang开源项目?

前言 下面是github上的golang项目&#xff0c;适合练手&#xff0c;可以自己选择一些项目去练习&#xff0c;整理不易&#xff0c;希望能多多点赞收藏一下&#xff01;废话少说&#xff0c;我们直接进入正题>>> 先推荐几个教程性质的项目&#xff08;用于新手学习、…