9629|5

117

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

MPU6050设置X,Y,Z轴的阈值中断唤醒STM32F103 [复制链接]

刚刚接触MPU6050,使用STM32F103C8T6驱动MPU6050,需要判断做收拾动作,但是还要省电,所以,我想到的是利用MPU6050的中断来唤醒STM32的待机模式,问题来了,刚刚玩MPU6050不了解很多东西,STM32待机模式进入后,MPU6050可以唤醒,但是MPU6050没有动,就自动唤醒了,刚进入待机模式就唤醒了,起不到省电作用,所以在此求助一些各位大神,朋友们,帮帮忙,MPU6050要怎么样设置,这些相应的参数。
当前我的设置是:
        MPU_IIC_Init();//初始化IIC总线
        MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80);        //复位MPU6050
        MPU_delay_ms(100);
        MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00);        //唤醒MPU6050
        MPU_Set_Gyro_Fsr(3);                                        //陀螺仪传感器,±2000dps
        MPU_Set_Accel_Fsr(0);                                        //加速度传感器,±2g
        MPU_Set_Rate(50);                                                //设置采样率50Hz
        MPU_Write_Byte(MPU_USER_CTRL_REG,0X00);        //I2C主模式关闭
//        MPU_Write_Byte(MPU_INT_EN_REG,0X00);        //关闭所有中断
//        MPU_Write_Byte(MPU_FIFO_EN_REG,0X00);        //关闭FIFO
//        MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80);        //INT引脚低电平有效
       
//        MPU_Write_Byte(MPU_INT_EN_REG,0X40);                   //打开运动中断                                  寄存器0X38            
        MPU_Write_Byte(MPU_INT_EN_REG,0X80);                   //打开自由落体中断                          寄存器0X38   
        MPU_Write_Byte(MPU_INTBP_CFG_REG,0X10);                /* 中断信号为高电平,推挽输出,直到有读取操作才消失 寄存器0X37 */
//        MPU_Write_Byte(MPU_MOTION_DET_REG,0X01);          // 运动阈值                              寄存器0X1F
        MPU_Write_Byte(MPU_MOTION_DET_DUR,0Xff);          // 自由落体阈值                              寄存器0X1F
        MPU_Write_Byte(MPU_MOT_DUR,0X14);                 //检测时间20ms   单位1ms                  寄存器0X20
        MPU_Write_Byte(MPU_MDETECT_CTRL_REG,0XC8);        //运动检测控制、加速度计上电延时200ms。 单位1ms   寄存器0X69
               
        res=MPU_Read_Byte(MPU_DEVICE_ID_REG);
        if(res==MPU_ADDR)//器件ID正确
        {
                MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01);        //设置CLKSEL,PLL X轴为参考
                MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00);        //加速度与陀螺仪都工作
                MPU_Set_Rate(50);                                                //设置采样率为50Hz
//                MPU_Set_Rate(100);                                                //设置采样率为100Hz
        }


实现不了设定的阈值来唤醒STM32

此帖出自stm32/stm8论坛

最新回复

吧主  你的这个问题解决了吗  我也遇到了这种问题  详情 回复 发表于 2017-10-19 10:54
点赞 关注(1)
个人签名图腾实验室------总有你想要的东西
https://shop112199014.taobao.com/?spm=a1z10.1-c.0.0.ie7t4K
 

回复
举报

672

帖子

0

TA的资源

版主

沙发
 
量一下6050中断输出脚的电平变化看看
此帖出自stm32/stm8论坛

点评

示波器看了一直是高电平,不知道是不是哪里设置错了  详情 回复 发表于 2017-7-12 23:11
 
 

回复

117

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
柠檬酸钠 发表于 2017-7-12 11:12
量一下6050中断输出脚的电平变化看看

示波器看了一直是高电平,不知道是不是哪里设置错了
此帖出自stm32/stm8论坛

点评

那仔细看下6050的配置,应该就是配置问题,改改代码就行了  详情 回复 发表于 2017-7-13 08:39
 
个人签名图腾实验室------总有你想要的东西
https://shop112199014.taobao.com/?spm=a1z10.1-c.0.0.ie7t4K
 

回复

672

帖子

0

TA的资源

版主

4
 
xmb6954757 发表于 2017-7-12 23:11
示波器看了一直是高电平,不知道是不是哪里设置错了

那仔细看下6050的配置,应该就是配置问题,改改代码就行了
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
你好,我看到了“MPU6050设置X,Y,Z轴的阈值中断唤醒STM32F103”这个帖子,我想问一下,mpu6050不是一直发送数据到stm32吗,这样stm32不随时都有中断,不能睡眠了吗?你是怎么处理的呀?
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 
吧主  你的这个问题解决了吗  我也遇到了这种问题
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表