STM32中的震动传感器使用

震动传感器是作为一个输入的外设,当发生震动时,DO引脚会向单片机引脚发送低电平,当其不震动时,持续向单片机输出高电平。在STM32中可以将其发送的低电平作为一个中断信号。触发c程序中的callback函数。例如

/*重写中断服务函数,如果监测到EXTI中断请求,则进入此函数*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    //一根中断线上有多个中断源,判断中断源是否来自PA4
    if(GPIO_Pin==GPIO_PIN_4)
    {
        //如果监测到PA4被拉低
        if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4)==GPIO_PIN_RESET)
        {
            //则点亮LED
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);
            HAL_Delay(1000);
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
        }
    }
}

注:HAL_Delay使用的是滴答定时器,容易被其他中断源打断,所有有时要在主函数中加上

HAL_NVIC_SetPriority(SysTick_IRQn,0,0);将优先级设置为最高,并将其他中断源优先级改为低级。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值