当前位置: 首页 > wzjs >正文

昆山做网站好的百度搜索排名优化

昆山做网站好的,百度搜索排名优化,程序界面设计,单位网站和新媒体建设制度本篇文章源码:STM32L431_RT_Thread_PM_mpu6050_wakeup: 使用MPU6050产生中断,唤醒休眠中的STM32L4 书接上回【笔记】STM32L4系列使用RT-Thread Studio电源管理组件(PM框架)实现低功耗-CSDN博客 上一篇文章使用PA0外接一个按键实…

本篇文章源码:STM32L431_RT_Thread_PM_mpu6050_wakeup: 使用MPU6050产生中断,唤醒休眠中的STM32L4

书接上回【笔记】STM32L4系列使用RT-Thread Studio电源管理组件(PM框架)实现低功耗-CSDN博客

上一篇文章使用PA0外接一个按键实现唤醒单片机,因为公司项目需求,需要设备在MPU6050产生位移时唤醒单片机,话不多说直接开始

一.使用MPU6XXX软件包

 

去掉磁力计,打开示例工程

 保存,编译

二.配置RTT工程

 打开模拟I2C

打开I2C1宏定义

 将packages\mpu6xxx-v1.1.1\samples\mpu6xxx_sample.c里边的i2c2改为i2c1

 编译下载,然后终端输入mpu6xxx_test,现象:

 MPU6050驱动成功

三.修改MPU6050驱动

因为MPU6050要经过配置,才能产生正确的中断信号,我们直接去修改源码

packages\mpu6xxx-v1.1.1\src\mpu6xxx.c里找到struct mpu6xxx_device *mpu6xxx_init(const char *dev_name, rt_uint8_t param)

在源码的配置下边加入我们自己的配置

    // 复位设备mpu6xxx_write_reg(dev, MPU6XXX_RA_PWR_MGMT_1, 0x80); // 复位HAL_Delay(100);// 清除复位并配置电源管理mpu6xxx_write_reg(dev, MPU6XXX_RA_PWR_MGMT_1, 0x01); // 设置时钟源为 PLL with X axis gyro referencempu6xxx_write_reg(dev, MPU6XXX_RA_PWR_MGMT_2, 0x00); // 启用所有传感器// 配置加速度计mpu6xxx_write_reg(dev, MPU6XXX_RA_ACCEL_CONFIG, 0x00); // ±2g// 配置陀螺仪mpu6xxx_write_reg(dev, MPU6XXX_RA_GYRO_CONFIG, 0x08); // ±500°/s// 配置数字低通滤波器mpu6xxx_write_reg(dev, MPU6XXX_RA_CONFIG, 0x00); // 禁用 DLPF// 配置采样率分频器mpu6xxx_write_reg(dev, MPU6XXX_RA_SMPLRT_DIV, 0x00); // 不分频// 配置运动检测mpu6xxx_write_reg(dev, MPU6XXX_RA_MOT_THR, 0x20); // 设置运动检测阈值mpu6xxx_write_reg(dev, MPU6XXX_RA_MOT_DUR, 0x01); // 设置运动检测持续时间// 配置中断引脚mpu6xxx_write_reg(dev, MPU6XXX_RA_INT_PIN_CFG, 0x10); // 高电平有效,推挽输出// 启用运动检测中断mpu6xxx_write_reg(dev, MPU6XXX_RA_INT_ENABLE, 0x40); // 启用运动检测中断

修改packages\mpu6xxx-v1.1.1\samples\mpu6xxx_sample.c整个文件

/** Copyright (c) 2006-2022, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date           Author       Notes* 2018-10-23     flybreak     the first version*/#include <rtthread.h>
#include "mpu6xxx.h"/* Default configuration, please change according to the actual situation, support i2c and spi device name */
#define MPU6XXX_DEVICE_NAME "i2c1"static void mpu6xxx_thread_entry(void *parameter)
{struct mpu6xxx_device *dev;struct mpu6xxx_3axes accel, gyro;/* Initialize mpu6xxx, The parameter is RT_NULL, means auto probing for i2c*/dev = mpu6xxx_init(MPU6XXX_DEVICE_NAME, RT_NULL);if (dev == RT_NULL){rt_kprintf("mpu6xxx init failed\n");return;}rt_kprintf("mpu6xxx init succeed\n");while (1){mpu6xxx_get_accel(dev, &accel);mpu6xxx_get_gyro(dev, &gyro);rt_kprintf("accel.x = %3d, accel.y = %3d, accel.z = %3d ", accel.x, accel.y, accel.z);rt_kprintf("gyro.x = %3d gyro.y = %3d, gyro.z = %3d\r\n", gyro.x, gyro.y, gyro.z);rt_thread_mdelay(500);}mpu6xxx_deinit(dev);
}static int mpu6xxx_test()
{rt_thread_t tid;/* Create a thread to run the mpu6xxx sensor test */tid = rt_thread_create("mpu6xxx_test", mpu6xxx_thread_entry, RT_NULL, 1024, 25, 10);if (tid != RT_NULL){rt_thread_startup(tid);rt_kprintf("mpu6xxx test thread created successfully\n");}else{rt_kprintf("Failed to create mpu6xxx test thread\n");return -1;}return 0;
}MSH_CMD_EXPORT(mpu6xxx_test, mpu6xxx sensor test function);

编译下载,将MPU6050的INT引脚接在板子的PA0,在终端输入mpu6xxx_test,每次晃动传感器,都会触发中断

http://www.dtcms.com/wzjs/453926.html

相关文章:

  • 东莞行业网站建设网站建设网站推广
  • 网店分销系统seo搜索引擎优化题库
  • 北京社交网站建设做网络推广有哪些平台
  • 北京网站建设公司网络营销外包网络建站报价alexa排名查询
  • 衢州做网站公司营销目标分为三个方面
  • wordpress相关推荐代码百度爱采购优化
  • 什么做的网站推广网络销售哪个平台最好
  • wordpress网站没有阅读量网络营销乐云seo
  • 做暧嗳xo小视频免费网站seo搜索引擎优化心得体会
  • 重庆市住房和城乡建设委员会网站投稿网站
  • 网站备案简单吗外链
  • 网站建设软件开发公司公众号推广费用一般多少
  • 网站点击弹出下载框 怎么做的seo整合营销
  • 教师招聘网站长城建设集团今日搜索排行榜
  • 做外贸的网站哪个好广州网络推广万企在线
  • 展览公司网站建设方案济南seo网络优化公司
  • 八爪鱼网站建设恶意点击软件哪个好
  • 武汉网站推广服务软件百度竞价怎么做
  • 网站是如何做的好搜索引擎营销的方式
  • 个人网站app企业网站设计优化公司
  • 开网站备案流程最新国际新闻热点事件
  • 温州瓯海建设局网站优化法治化营商环境
  • 东莞销售网站设计西安seo代运营
  • 云南网站建设专业品牌做什么推广最赚钱
  • wordpress访客长沙网站seo哪家公司好
  • 长沙建设网站的公司学网络营销去哪个学校
  • 公司网站建设推广今天的最新消息新闻
  • 途牛网网站是哪家公司做的在线bt磁力搜索
  • 每平设计家官网北京seo网站开发
  • 中卫市建设局网站seo代码优化步骤