中断中使用事件组


中断是,在中断中传输完数据后的回调函数里面写入数据,就是触发中断才有后续操作;
I2C,是一直开着在等数据;MPU6050用的I2C,也就是不动这个陀螺仪,他也在工作,浪费cpu资源;

在中断里面使用事件组来改造程序

用中断设置事件组来唤醒任务读取I2C数据;
这个任务只用等中断写了事件后,它得到事件后,才会来读I2C;
而不像之前一样不断读取I2C,不管有无数据;

配置MPU6050中断,PB5 INTimage.png

image.png
触发中断产生高电平,所以配置为上升沿触发;
找中断函数GPIO_EXTI5,在异常向量表中;
image.png
image.png
找到后发现是弱函数,就是用户自己拿过来写的;
image.png
别忘了使能中断,使能中断后,会出现相关代码
image.png
image.png

配置mpu6050的中断引脚

MPU6050的运动中断应用_mpu6050中断-CSDN博客
image.png
仿照其他函数,调用函数来给寄存器里面写入数值
image.png

怎么使能mpu6050中断寄存的如下

寄存器的8为,哪个功能需要的,那一位就改为1;其他看对应功能描述来改;
image.png
image.png

注意:如果使用了中断后没出现想要的效果

从两个方面找问题:
1、NVIC中配置好的中断引脚,是否使能

2、硬件本身的代码中的EXIT是否是使能状态的,这个网上查一下使能要怎么配置它的寄存器;
GPIO外部中断如下图2、3步骤
2、EXIT配置中断方式,以及使能,3、配置优先级,以及使能

写mpu6050的中断事件触发任务去接收I2C数据

一套流程如下:
MPU6050陀螺仪,转动等动作,PB5这个中断引脚先触发中断,中断中的回调函数来设置事件,触发等待事件的任务,任务继续执行下面的函数来接收I2C的数据
无标题.png

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值