野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24690|回复: 1

关于固件库编程教学视频中留下的PA0、PB0同时为中断源配...

[复制链接]
发表于 2021-4-26 00:42:51 | 显示全部楼层 |阅读模式
    从资料可以知道,STM32的外部中断EXTI在配置的过程中,通过两个步骤:1.选择中断线EXTI_Linex;2.使用GPIO_EXTILineConfig语句。指定了对应EXTIx的GPIO端口及引脚,并且这样的指定是唯一的【比如EXTI0不能同时指定PA0与PB0为PinSource,而从代码上看,最终会将 后配置的一个IO口作为唯一的指定】
   那么,假如真要同时使用PA0和PB0作为可能的中断源,在代码上该如何实现呢?
   我自己想了这样一些办法:
       一、在功能的“时效”要求不太严格时,比如实现这样一个功能:在按下按键时使led被点亮,松开按键之前要保持led长亮,且有复数要使用Line0的此类按键,对应不同的led灯。
             这个时候也许可以在main函数中重复读取复数个Px0的值,在脉冲来临时进入EXTI0_IQRHandeler,并且根据先前读取的值来点灯。
             我认为这个方法的缺点是在“时效性”上往往不能满足使用的需要,特别是有复数个Linex都处于被多个PinSource使用的时候,main函数中的重复判断真的是很笨的方法。

       二、还是【一、】里面那个复数个按键中断点灯的例子。
              可以用类似或门的形式在pcb板上将重复使用同一Line的几个按键都相连,输出到开发板的PA0,固定将PA0设置为Line0的PinSource,进入中断服务函数后再通过其他硬件手段
              来判断真正的中断源,并执行相应的服务。
              这个方法的缺点在于麻烦,而且就算做出来,也要占用多于按键数的IO口【若干固定中断源+数目等于按键数的数据线】

  因此,在学习过程中遇到了如下的疑问,能不能只用软件、代码的方式就能实现   不同PinSource同时使用同一EXTIx的功能呢?
_(눈_ 눈」∠)_   恳请大侠们为stm32新手解答一二,感谢!
回复

使用道具 举报

发表于 2021-12-29 22:43:41 来自手机 | 显示全部楼层
想问问有懂了的吗,我没听懂怎么搞
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 00:08 , Processed in 0.030986 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表