震动传感器介绍及实战(中断)

2023-10-27

项目要求:

利用震动传感器实现点灯效果,当传感器察觉震动,led灯亮。否则不亮

接线及引脚:

传感器信号引脚DO接PA4;

led1灯的引脚接PB8;

所以中断的信号源就是PA4引脚;

配置STM32:

PB8设置成output,输出给led。

打开使能中断,这里要注意的是,将抢占优先级设置为2。(主要是要低于滴答计时器的优先级就可以了),默认滴答计时器的优先级是最低的,容易被其他中断干扰,阻塞程序,造成卡死。

代码

/* USER CODE BEGIN 0 */
//重写中断服务函数,如果检测到EXIT中断请求,则进入此函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    //一根中断线上有多个中断源,判断中断源是否来自PA4
    if(GPIO_Pin == GPIO_PIN_4)
    {
    //如果中断源来自PA4(检测要PA4被拉低)
        if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4) == RESET)
    //PB8输出低电平LED灯亮
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);
            HAL_Delay(3000);
            HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
            
    }    
    //如果未检测到PA4则,PB8输出高电平,关闭LED1
    else
    {
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
    }
}

注意:因为使用了Delay延时函数,在main中函数中要调整滴答计时器的优先级,调整为0;

代码为

/* USER CODE BEGIN SysInit */
    HAL_NVIC_SetPriority(SysTick_IRQn,0,0);
  /* USER CODE END SysInit */

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

震动传感器介绍及实战(中断) 的相关文章

随机推荐

  • ts类型体操Concat

    533 Concat by Andrey Krasovsky bre30kra69cs easy array Question Implement the JavaScript Array concat function in the ty
  • 总结的一些MySQL索引相关的知识点

    博客迁移 http cui zhbor com article 14 html MySQL索引 有很多很多的东西需要去学习 我会写一些自己的总结 这些总结主要是平时运用在实际项目中的 有很多的经验往往设计表的人很清楚 但是总是有 这个东西就
  • 【实例分割】3、Mask Scoring R-CNN

    文章目录 摘要 1 引言 2 相关工作 2 1 实例分割 2 2 检测得分校正 3 方法 3 1 动机 3 2 Mask scoring in Mask R CNN 4 实验 4 1 实验细节 4 2 定量结果分析 4 3 消融学习 4 4
  • 时序逻辑和组合逻辑

    一 组合逻辑与时序逻辑的对比 1 组合逻辑的输出状态与输入直接相关 时序逻辑还必须在时钟上升沿触发后输出新值 2 组合逻辑容易出现竞争 冒险现象 时序逻辑一般不会 3 组合逻辑的时序较难保证 时序逻辑更容易达到时序收敛 时序逻辑可控 4 组
  • IP代理安全吗?如何防止IP被限制访问?

    你是否遇到过可以正常上网 但访问某个网站却被禁止 注册某个网站账号 却被封号 那都是因为IP出现问题 您的IP地址透露很多关于您的信息 包括您的位置和互联网活动 在本文中 我们将一起了解IP地址 网站如何利用它来跟踪您 以及与IP代理如何帮
  • 求助:stm32+proteus+adc采集电压仿真显示为零

    求助一下大佬 因为板子上的oled不是ssd1306驱动的所以现在只能学习跑仿真 在学adc采集电压的实验 OLED显示没问题 现在的问题是采集不到电压 显示总是0 麻烦好心人帮我看看是哪里出了问题 软件用的keil mdk5 24 pro
  • Game【HDU-6873】【Splay】

    2020 Multi University Training Contest 9 G题 题意 有N个有各自高度的位置 按1 N从左到右排列 现在我们有两种操作 x y将第x列 第y行的方块 包括它上面的方块从右往左的移动过去 同时推动前面的
  • 【导入导出测试用例编写】

    导入导出测试用例编写 一 导出模板测试用例 二 导出数据测试用例 三 导入数据测试用例 一 导出模板测试用例 1 检查模板是否可以正常下载正常打开 2 检查模板表头格式展示是否正确 与系统列表中的字段是否一致 3 检查必填项 字段长度 字段
  • 接口性能 指标

    接口测试响应时间 通用得接口响应使时间分布情况 100ms为优良 500ms为及格 1000ms以上为不可忍受 金融接口响应时间得分布情况 100ms为优良 200ms为及格 300ms以上为不可忍受
  • 动态链接库(一)--动态链接库简介

    写在前面 自从微软推出的第一个版本的Windows操作系统以来 动态链接库 DLL 一直就是Windows操作系统的基础 动态链接库通常不能直接运行 也不能接收消息 它们一直是独立的文件 其中包含能被可执行程序或其他DLL文件调用来完成某项
  • 【解决ElementUI 和Antd的对话弹窗样式冲突问题】

    项目中使用了Antd 和element UI两种UI库 Antd是全局样式 element ui则是按需引入 在使用element ui的页面处点击退出 弹出的对话框就会样式失效 首先在随便一个地方点击退出登录看一下正常效果 再打开F12查
  • Unity3D中的ref、out、Params三种参数的使用

    目录 ref out Params ref 作用 将一个变量传入一个函数中进行 处理 处理 完成后 再将 处理 后的值带出函数 语法 使用时形参和实参都要添加ref关键字 using System Collections using Sys
  • JavaSE学习总结:面向对象编程

    Java面向对象编程 1 类与对象 1 1面向对象的理解 1 1 1面向对象和面向过程的区别 1 1 2面向对象的好处 1 1 3面向对象的思考步骤 1 2类与对象 1 2 1什么是类 1 2 2什么是对象 1 2 3二者的区别 1 2 4
  • ubuntu设置环境变量

    vim bashrc export VCPKG FORCE SYSTEM BINARIES 1 export VCPKG HOME PATH vcpkg export X VCPKG ASSET SOURCES x azurl http 1
  • GPT-4最强竞争对手Claude 2震撼发布,据说超过GPT-4?

    OpenAI 发布了 GPT 4 的 API 和令人兴奋的 最强插件 代码解释器 这无疑给竞争对手们敲响了警钟 而最近 Anthropic 旗下的 Claude 揭开了它的第二代面纱 免费使用Claude 2请加微信wyxyellow 相较
  • GAN之生成对抗网络(Matlab)

    代码来源 代码全文 clear all close all clc Basic Generative Adversarial Network Load Data load mnistAll mat trainX preprocess mni
  • DMRS在5G NR各种物理信道上的配置

    笔者在微信公众号GiveMe5G定期发布学习文章 更多更及时 欢迎订阅和分享 文章下方有二维码 本篇文章旨在介绍DMRS DeModulation Reference Signal 在5G中 DMRS广泛存在于各个重要的物理信道当中 如下行
  • MMdetection的Proposal原理和代码解析

    一 算法原理 接受N级score bbox pred anchor和image shape作为输入 通过anchor和框的偏移 bbox pred 得到proposal 然后对这些proposal做NMS 最后选出前num个 二 执行步骤
  • golang 组成树形格式

    该封装受到前端 js filter函数的启发看着特别简洁 一 封装一个函数 比较简单就是循环根据传入的 回调函数 进行过滤组成新的数组返回 func Filter T any arr T f func item T bool list T
  • 震动传感器介绍及实战(中断)

    项目要求 利用震动传感器实现点灯效果 当传感器察觉震动 led灯亮 否则不亮 接线及引脚 传感器信号引脚DO接PA4 led1灯的引脚接PB8 所以中断的信号源就是PA4引脚 配置STM32 PB8设置成output 输出给led 打开使能