项目场景:

探索者STM32F407开发板与独立惯导MPU6050配置,采用正点原子例程


问题描述:

正点原子例程中采用的是内置惯导,引脚分别为 PB8 与 PB9

在实验过程中,遇到了如下问题:

(1)直接使用 PB8 与 PB9 与惯导的 SCL 与 SDA 相连:

问题:无法识别到独立惯导,数据显示为内置惯导

由于源程序在开发板上直接运行是没有问题的,因此应该是开发板内部连接问题,使得 PB8 与 PB9 不能继续使用。

(2) 改写程序中的 IIC 部分,采用其他引脚(PB6 和 PB7):

改写的内容主要包括  IIC.h 和 IIC.c 两个文件,对照 stm32f4 官方手册:

//myiic.c
void IIC_Init(void)
{           GPIO_InitTypeDef  GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//修改GPIOBGPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;//修改引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(GPIOB, &GPIO_InitStructure);//修改GPIOBIIC_SCL=1;IIC_SDA=1;
}
//myiic.h
#define SDA_IN()  {GPIOC->MODER&=~(3<<(9*2));GPIOC->MODER|=0<<9*2;} //修改
#define SDA_OUT() {GPIOC->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;} #define IIC_SCL    PBout(8) //SCL 修改
#define IIC_SDA    PBout(9) //SDA 修改
#define READ_SDA   PBin(9)  //修改
@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); } 

结果开发板显示为无数据,查看源码发现这种情况是 MPU 已经正常初始化了,但没有得到数据,原因是函数mpu_dmp_get_data(&pitch,&roll,&yaw)返回值不为0,因此通过串口打印查看了函数的返回值,发现为1,继续深入查找,也在网上看了很多类似的情况,主要有以下几类:

  • FIFO 没有使能:原子例程中指明不需要使能
  • MPU 供电电压选错:选成 5V 模块不早就烧坏了吗?感觉这个也不对
  • IIC 读取速度太慢

总之,上面的各种情况我都一一查看了,都不是造成我的这种情况的原因。

(3)考虑开发板内部接线复杂,选择了较为稳妥的串口2的引脚( PA2 和 PA3)

结果:数据正常显示


原因分析:

开发板内部接线使得某些引脚不可用


解决方案:

使用串口 2

vcc-3.3v

gnd-gnd

scl-pa2

sda-pa3

ad0-gnd

int-pc0

探索者STM32F407开发板与独立惯导MPU6050配置相关推荐

  1. 基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程(转)...

    源:基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程 转载于:https://www.cnblogs.com/LittleTig ...

  2. 使用gpio输出驱动蜂鸣器出现破音_探索者 STM32F407 开发板资料连载第七章 蜂鸣器实验...

    1)实验平台:探索者 STM32F407 开发板 2)摘自<STM32F4 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 蜂鸣器实验 上一章,我们介绍了 ...

  3. 【正点原子探索者STM32F407开发板例程连载+教学】第43章 sd卡实验-SDIO

    第四十三章  SD卡实验         1.硬件平台:正点原子探索者STM32F407开发板  2.软件平台:MDK5.1  3.固件库版本:V1.4.0  很多单片机系统都需要大容量存储设备,以存 ...

  4. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板 2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第二十二章 待机唤醒实 ...

  5. 485串口测试工具软件_探索者 STM32F407 开发板资料连载第三十一章 485 实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十一章 485 实验 ...

  6. 【STM32-V5】STM32F407开发板开源, 丰富软件资源, 强劲硬件配置, 配套600实例, 20套手册带视频教程2023-05-15

    从2013年5月份发布至今,开发板硬件更新过6个版本,软件资料更新过136次.当前标准库最新版本V9.2,HAL库最新版本V5.6 安富莱微信公共平台,欢迎大家关注(打造高质量公众号). ====== ...

  7. 探索者STM32F407开发板学习笔记一安装调试,串口下载

    1.下载驱动CH340驱动(USB串口驱动),进行安装,一般直接点下一步就可安装成功.然后进行测试,数据线两端一端连接USB-232接口,一端连着电脑的USB接口,打开开关, 找到设备管理器,找到端口 ...

  8. 正点原子探索者STM32F407ZGT6开发板资料:

    3)正点原子探索者STM32F407ZGT6开发板资料:      [百度网盘链接]:         A盘文件夹形式:https://pan.baidu.com/s/1jHWI8fG   A盘文件夹 ...

  9. 小日历实验目的Android,【连载】【星光闪电STM32F407开发板】第十二章 RTC实验

    [连载][星光闪电STM32F407开发板]第十二章 RTC实验 [复制链接] 第十二章RTC实验 12.1 实验目的 本实验旨在掌握STM32的实时时钟RTC的使用,利用其测量日期时间,数据手册请参 ...

最新文章

  1. Linux 启动过程详解
  2. 错误 - 无法访问IIS元数据库
  3. ROS知识: vanilla(香草) CMakeLists.txt 的语法
  4. Request method 'GET' not supported解决方式
  5. php 打印oracle数组,ThinkPHP框架自身$map数组查询语言where条件对应oracle数据库时间戳查询方法...
  6. java 线程组作用_Java线程组(ThreadGroup)使用
  7. java runtime 异常_Java中RuntimeException和Exception
  8. 交大c语言第一次作业答案,第一次作业答案(供参考)
  9. Qt组件中的双缓冲无闪烁绘图
  10. 2020年计算机一级B押题,2021年全国计算机一级选择题真题押题.doc
  11. SQL练习题完整(做完你就是高手)
  12. python counter_Python神奇的10个技巧
  13. SCSS和Sass有什么区别?
  14. xml存储数据 优缺点_Python大神都是这样处理xml文件的!
  15. 大平房到朝阳环路时间表_冰蓄冷系统设计计算10大要点
  16. 最新VS2012破解 序列号,vs2012旗舰版密钥序列号【收藏】
  17. java执行maven命令
  18. MTK平台download烧录大全
  19. Syzmlw蜗居在线播放
  20. Win10开启ssh和scp

热门文章

  1. 孙溟㠭先生篆刻“药生尘”——纪念吴孟超院士精神永在
  2. Python实例16:玫瑰花绘制
  3. Acunetix Web Vulnerability Scanner(WVS)(Acunetix网络漏洞扫描器)
  4. Solidity-僵尸攻击人类
  5. 培养孩子注意力的小方法
  6. 服务器压缩文件命令,linux服务器解压缩文件的命令
  7. 关于IT系统如何快速开发以及如何管理的一些思考
  8. STM32读取TCS3472颜色传感器读取RGB颜色和色温值和Lux
  9. HTML5期末大作业:古城旅游网站设计——古城旅游景点介绍(34页) 关于古城的HTML网页设计-----景点介绍
  10. 捷径说那些好评爆裂的功能,你用了几个?