半岛网页版_官网登录入口半岛官网入口专注于电气产品领域10余年
致力打造电气配套产品行业品牌

高频电泳电源_电泳整流电源厂家-半岛网页版_官网登录入口

电泳电源服务热线:13964417937

STM32F0单片机快速入门五: GPIO中断

首页 > 产品展示 > 可控硅调功调压器

STM32F0单片机快速入门五: GPIO中断

时间: 2024-02-14 06:46:16 |   作者: 半岛官网入口

我们从一个例程看一下,如何用一个GPIO引脚来触发中断,来控制另一个引脚的翻转去控制LED指示灯

详细介绍


  我们从一个例程看一下,如何用一个GPIO引脚来触发中断,来控制另一个引脚的翻转去控制LED指示灯。

  编译下载运行此代码,然后按压 B1 USER 这个按键,每一次按压会触发板上一个LED灯翻转一次。这个功能也很简单,但它牵涉到的东西却不少。看一下代码:

  上一篇文章讲了如何翻转GPIO引脚,所以现在我们只关注一下如何用一个引脚触发中断吧。main()函数里调用了一个外部中断模块(EXTI)初始化后就进入while循环了。

  我们在下面能够找到这个初始化函数的实现。它调用HAL库函数对按键连接的引脚PC13做了初始化,把此引脚初始化为能触发中断的模式。

  初始化函数的下面是一个回调函数(Callback Function)。在此函数中翻转了连接LED的引脚。我们接下来分别讲一下这个回调函数和如何把一个GPIO引脚初始化为中断模式。

  回调函数这个概念,解释可以说五花八门,什么原因呢?因为这好像不是一句自然(人)语言(话)。咱们还是打个比方好理解一些。

  好比你在厨房做菜,猛地发现酱油没了。你叫你儿子去给你打酱油,儿子就是你的驱动。儿子听到你的召唤,说:行啊,老爸,但你得先给我点钱啊!你看,儿子这就是回调(Callback)。一会儿儿子打酱油回来了,然后把酱油交给你,这也是回调。

  那我们回到程序,看一下应用程序(Application),驱动(Driver)和回调函数(Callback Function)是啥关系。如果应用程序调用一个驱动,这个驱动在执行前先调用一个函数来获取一些参数,而这些参数需要由应用程序提供,所以此函数位于应用层,它就是一个回调函数。还有一种情况就是驱动执行完毕,通过调用应用层的一个函数返回结果,或通知应用层执行完毕,此函数也是回调函数。

  MCU是如何把一个引脚电平的变化和一个中断联系起来的呢?我们马上想到给每个GPIO引脚分配一个中断向量就好了。当一个引脚电平变化,马上就可以跳转到自己对应的中断服务程序。这确实是最简单的办法,但MCU一般都有几十个引脚,如果这样做像M0这种内核只支持32个外部中断,根本就不够用的。所以我们看STM32F030仅支持16个外部中断,又在中断向量表中进一步缩减为3个中断向量。

  这就要通过 EXTI (Extended interrupts and events controller)这个模块。它除了能完成中断引脚的选择(映射),还可以配置是上升沿还是下降沿触发,也可以屏蔽(Mask)某个引脚。下面的示意图简要的显示了这种关系。

  大家注意,图中这些模块虽然都在一个芯片内,但是EXTI是芯片级模块,NVIC是在M0内核之中。

  上一篇:STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单

  TMR1是16位宽度的TMR1由2个8位的可读写的寄存器TMR1H和TMR1L组成。 TMR1有专门的启停控制位TMR1ON,通过软件能随意启动或暂停TMR1计数功能。 T1CON:TIMER1 CONTROL REGISTER bit7-6 unimplemented :Read as ‘0’ bit5-4 T1CKPS1:T1CKPS0:Timer1 input Clock Prescale Select bits 11=1:8 prescale value 10=1:4 prescale value 01=1:2 prescale value 00=1:1 prescale va

  带总线扩展接口的单片机系统,包括外部32kRAM扩展、LCDl602接口、输入输出口。带编址扩展的单片机最小系统电路如下图所示。使用74HC573锁存低8位地址;74138实现8个地址扩展,74138的A、B、C接A8~A9,E1接Al5,E2、E3接地常有效,得到OF8FFH到OFFFFH8个地址或者8000H到8700H(无关位用0表示)。 32k接口如下图所示。DO~D7接数据总线口,地址线接单片机地址总线位,单片机地址线接片选信号,低 电平 有效,这样地址分配从OOOOH到7FFFH,与74138译码地址不冲突。 LCD1602接口电路如下图所示。

  总线编址电路 /

  =============================================================================================================================== 1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 处理方法: A.看中断有没有用 _EINT(),引起中断嵌套. B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。 =================================================

  倒车障碍检测系统对盲区内障碍物的探测 倒车障碍检测系统所采用的超声波传感器技术能探测到附近的障碍物,为驾驶员提供倒车警告和辅助泊车功能,其原理是利用超声波探测倒车路径上或附近存在的任何障碍物,并及时发出警告。所设计的检测系统能同时提供声光并茂的听觉和视觉警告,其警告表示是探测到了在盲区内障碍物的距离和方向。这样,在狭窄的地方不管是泊车还是开车,借助倒车障碍报警检测系统,驾驶员心理上的压力就会减少,并可以游刃有余地采取必要的动作。而这种PIC l8F8490微控制器与超声波传感器很便宜,并能用在众多车型上。 那末什么是基于超声波传感器的倒车障碍检测系统呢?为此应先了解超声波传感器的有关技术问题 超声

  和超声波技术在汽车倒车检测系统中的应用 /

  仿真电路图: #include mega48.h #include delay.h // DS18b20 Temperature Sensor functions #include ds18b20.h // Alphanumeric LCD Module functions #include alcd.h #define ADC_VREF_TYPE 0x60 #define Temp_Set_Key_Not_Pressed PIND.6 #define Alarm_Set_Key_Not_Pressed PIND.7 // Read the 8 most significant bits // of th

  温度测控系统proteus仿真 /

  在此用了16C711单片机的TMR0做定时中断,希望实现精准计时,在程序中,TMR0用了晶振的32分频,初值#0FCH,因此POPBEAR兄弟计算出每个定时中断的计时时间为(256-X)*32*4/32768=0.015625秒。注意,问题就在这里!实际上这一段时间是TMR0的初值被置入后两个指令周期后(见PIC单片机定时器/计数器资料)到下一次中断发生时的时间。如果要用到定时器的精准定时,必须理解这一概念! 如采用32768Hz的晶振,每个指令周期为122us,在中断处理程序中,到TMR0的初值被置入,共有7条指令,加上TMR0的初值被置入后两个指令周期,如果中断处理程序不直接放在0004H地址而采用GOTO指令的两个周期,一

  汽车mcu的功能和作用 汽车MCU(Microcontroller Unit,微控制器单元)是指安装在汽车内部的一种嵌入式微控制器芯片,用于控制和管理汽车各个系统及其相关设备。汽车MCU的功能和作用如下: 控制和管理车辆电子系统:汽车MCU作为整个车辆电子系统的中枢处理器,负责控制和管理车辆各个系统的功能和操作。它可以与引擎管理系统、传输控制管理系统、底盘控制管理系统等其他电子控制单元进行通信,并对这些系统来进行协调和调度。 数据采集和信号处理:汽车MCU能够接收来自各个传感器的数据,例如发动机转速、车速、轮胎压力、气囊状态等,接着进行实时的数据采集和信号处理。它可以对这一些数据进行分析和计算,为其他系统提供必要的信息和参考

  在STM32之前,都是老大头51,带着它的“小弟们” MSP430、AVR、PIC在单片机界呼风唤雨。 当时,市场上遍布8位机,大学教材用51入门,个人、企业学单片机基本上也都在用51。 虽然AVR也有一些8位机市场,但与stc带领下的51单片机是完全不能相比的。 当然,这样一个时间段也有16位机的msp430,其他厂家单片机还有pic,高端嵌入式处理器等市场有arm7、arm9等。 这一段时期的单片机市场是百花齐放、百家争鸣,但总体来说,还是势均力敌、一片祥和的。 那么,这个局势是从何时开始打破的呢?这还得从物联网的崛起说起。 原因 当时,物联网(Internet of Things,IoT)逐步进入人们的视野范围。随着它的

  中脱颖而出 /

  目前最小的MicroPython开发板PYBNano最近在看源码,很难懂,能给个指点吗秒杀ArduinoNano啊,D大,这个是你自己焊的么,有点儿惨啊,,,换个好使的烙铁。都已经移植到401上去了啊。就为了io少点,板子可以小点吗? 我也在看,没什么思路,您那有什么线索吗?希望能和您交流mpy换个刀型烙铁倍爽 没有,思路很不清晰这板子不错! 源码部分只粗略的看了一下,暂时没有深入的计划。预备先做硬件和应用,源码等有时间在说。

  Bluetooth Smart与Bluetooth Smart能否连接通信?

  请教专家,2块具有BluetoothSmart单模功能的芯片能否组成一发一收的通信系统?BluetoothSmart与BluetoothSmart能否连接通信?不可以。。。具体可以看下下文楼上说的只是商标吧,单论芯片级别的,2个单模的1主1从是可以通讯的,不一定要求某方必须是双

  如题,我使用ADC3来采样PB1(AIN9)但是结果总是为0,ADC3采用其他通道没问题(试过0,1,10,11,12,13),采用ADC1采样AIN9是没问题的!怎么回事呢?STM32F103VET6ADC3AIN9问题求助ADC3根本不对应PB1的端口。请看这里:STM32的ADC输入通道配置谢谢,ADC输入通道配置的这段描述出处在那个文档呢? 刚刚看过手册,有提到A

  我在拨号盘界面右软键菜单下添加一扩展菜单,所有的操作都是按照微软列子来的,可就是在拨号界面的菜单下显示不出来?有那位知道。请指点。(在历史记录下的扩展菜单显示了出来)谢谢了。急。扩展菜单注册的对么?

  利用立宇泰armsys44b0-p的板子按网上的方法一顿乱改编译之后启动运行结果如下U-Boot1.1.6(Oct152008-10:41:03)DRAM:8MBFlash:2MB然后死机,可能是什么样的问题请教u-boot移植问题这个原因太多。打印de信息太少。看看你flash驱动

  最近,微软宣布将旗下的AzureRTOS开源并免费商用,并将AzureRTOS源码贡献给Eclipse基金会,自此,AzureRTOS变成了EclipseThreadX.AzureRTOS是一个带有ThreadX实时操作系统的嵌入式开发套件,一个小而强大的面向物联网的实时操作系统,已经部署在全球超过12亿台设备上。这次开源的是AzureRTOS全家桶,包括ThreadX实时操作系统内核,NetXDuo、FileX、GU


  Battery Management System Solutions: 36 V and beyond from BMS ICs to the

  到嵌入式人工智能的历史回顾

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  【电路】利用Arm安全架构提升防护性能的STM32H7 MCU,你知道吗?

  【电路】PC串口和MC68HC70-5K1微控制器之间的RS232传输电路

  【电路】低功耗8通道串行10位AD转换芯片MAX149与TMS320系列单片机连接方法

  MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!跟帖赢好礼~

  电源小课堂 从12V电池及供电网络优化的角度分析电动汽车E/E架构的趋势

  【下载】LAT1362 利用STM32 TIMER触发ADC实现分组转换

  【下载】LAT1334 基于MCSDK5.4.8电机库修改两电阻采样方法

  【下载】LAT1347 基于STM32CubeIDE移植ClassB 4.0

  【下载】LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

  【生态】使用STM32CubeMX在STM32U5上配置LPBAM应用程序

  【MPU】轻松使用STM32MP13x如MCU般在Cortex A 核上裸跑应用程序

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  【新品】降本增效这事儿,就看STM32C0,低至0.24美元” ,开机即可物联世界

  【GUI开发】TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!

  【边缘AI】突破边缘AI应用的次元壁:首届意法半导体边缘人工智能峰会举行

  【生态系统】STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【无线携手创新微MinewSemi共创低功耗模块,引领中国智能连接未来

  新款STM32U5片上集成矢量图形加速器及大容量SRAM存储器2024年2月5日,中国 - 意法半导体推出了集成新的专用图形加速器的STM32*微控制器(M ...

  水果种植业是我国农业发展的重要组成部分,果树病虫害防治作业也慢慢变得被重视。当下我国施药水平总体偏低,主要体现在自动化技术落后、作业 ...

  一、运算器运算器以完成二进制的算术 逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。 ...

  1、引言弹簧是机械行业的通用零部件,用途十分广泛。工业的发展,刺激了弹簧的需求,同时也对弹簧加工设施提出了更高的要求。以往的加工设 ...

  单片机的基本结构包括中央处理器(CPU) 、存储器、定时 计数器、输入输出接口、中断控制管理系统和时钟电路六部分。一、基本组成中央处理器( ...

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

半岛网页版_官网登录入口版权所有      /ms/static/picture/wkj0iwdl8cmac7l_aabloa4rbhs202.png鲁公网安备 鲁ICP备16034677号-2    鲁ICP备16034677号-2