基于stm32f4外部输入上升沿或下降沿的采集处理

最近在调试stm32f4的UCOSIII操作系统中,外部中断的使用。发现当触发了相应的外部输入中断,会多次进入外部中断处理函数。(测试方式是在外部中断函数中写下代码t++,然后用windows窗口查看变量t的变化情况,发现每次外部中断输入,t会++很多次)从网上也找了很多资料,应用到实际工程中,问题未得到解决。因此改变思路,即不再用外部中断检测上升沿或下降沿,而是采用之前工程用到的,检测变量前后变化的方式来检测上升沿或下降沿。具体的说明代码如下:

while(1)
{
//检测外部下降沿	
  switch_flag_pa1=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
  if((switch_flag_pa1==0)&&(switch_flag_old_pa1==1))
  {
//处理逻辑
  }
  switch_flag_old_pa1=switch_flag_pa1;
//检测外部上升沿	
  switch_flag_pb1=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1);
  if((switch_flag_pb1==1)&&(switch_flag_old_pb1==0))
  {
//处理逻辑
  }
  switch_flag_old_pb1=switch_flag_pb1;
}

从实际的测试效果来看,采用变量前后变化的方式可以采集到上升沿或下降沿,从而替代外部输入中断处理。至于在操作系统中,外部中断进入多次的原因,有待以后进一步查明。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
嵌入式系统是一种集成了软件和硬件的特殊计算机系统,它通常用于控制、监控、通信和计算等方面。STM32F4系列是一种常用的嵌入式微控制器,具有高性能、低功耗和丰富的外设接口,广泛应用于各种领域。 在控制器考试样卷中,可以通过嵌入式系统原理应用基于STM32F4系列的控制器来实现一些常见的功能,比如控制LED灯的亮灭、读取温度传感器的数值、驱动步进电机等。通过这些功能的实现,考生可以了解嵌入式系统的基本原理和应用。 首先,可以利用STM32F4系列的GPIO接口来控制LED灯的亮灭,通过编写相应的程序来实现LED的闪烁、呼吸灯等效果,考生需要了解GPIO的基本配置和控制方法。 其次,可以通过外部的温度传感器模块将温度数据输入STM32F4系列的ADC(模数转换)接口,再通过编写程序将采集到的数据进行处理和显示,考生需要了解ADC的基本原理和操作方法。 此外,还可以利用STM32F4系列的定时器和PWM(脉冲宽度调制)接口来驱动步进电机,实现简单的转动控制,考生需要了解定时器的配置和PWM的输出控制方法。 通过这些实际的应用,考生可以加深对嵌入式系统原理的理解,掌握嵌入式系统在控制领域的基本应用。同时,也能够培养考生的动手能力和解决问题的能力。因此,基于STM32F4系列的控制器考试样卷是一种有效的教学方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值