STM32F103移植mpu9250

news/2024/11/15 21:23:45/

STM32F103移植mpu9250

  • 1. 需求和来源
    • 1.1. 基本配置
    • 1.2. 遗留问题
  • 2. 解决办法
    • 2.1. libmpllib.lib
    • 2.2. 空间不够


1. 需求和来源

回归技术的第二天,需要对机器人下层执行器做优化
外设不算多,用STM32F103C8T6刚刚好留一个测试引脚
但是在网上找不到比较好的mpu9250在STM32F103的应用例程
那就只能自己来了

直接移植正点原子阿波罗F429的mpu9250例程
简单的移植,修改相关文件和添加头文件包含之类,的就不多说
就是说说过程中会碰到的一些问题


1.1. 基本配置

在这里插入图片描述

  1. 按F429例程添加预定义宏:
    USE_HAL_DRIVER,STM32F429xx,MPL_LOG_NDEBUG=1,EMPL,MPU9250,EMPL_TARGET_STM32F4
    
  2. 修改编译优化等级
  3. MPL 代码,要求在 MDK Options for TargetC/C++选项卡里面要勾选 C99 模式,否则编译出错

1.2. 遗留问题

之后就会遇到网上或者一些教程上比较少提到的问题

  1. 出现下列错误:

    .\Obj\Project.axf: Error: L6366E: compass_vec_cal.o attributes are not compatible with the provided attributes .
    Object compass_vec_cal.o contains Build Attributes that are incompatible with the provided attributes.Tag_CPU_arch = ARM v7E-M (=13)
    ...
    .\Obj\Project.axf: Error: L6366E: accel_auto_cal.o attributes are not compatible with the provided attributes .
    Object accel_auto_cal.o contains Build Attributes that are incompatible with the provided attributes.Tag_CPU_arch = ARM v7E-M (=13)
    Not enough information to list image symbols.
    Not enough information to list the image map.
    

    F4例程里面的libmpllib.lib这个库文件是不是针对F4生成的,F1不能直接使用
    在这里插入图片描述

  2. 出现下列错误:

    .\Obj\Project.axf: Error: L6406E: No space in execution regions with .ANY selector matching empl_outputs.o(i.inv_enable_eMPL_outputs).
    .\Obj\Project.axf: Error: L6406E: No space in execution regions with .ANY selector matching data_builder.o(i.inv_get_gyro_bias).
    ...
    .\Obj\Project.axf: Error: L6406E: No space in execution regions with .ANY selector matching usenofp.o(x$fpl$usenofp).
    .\Obj\Project.axf: Error: L6407E: Sections of aggregate size 0xaa4 bytes could not fit into .ANY selector(s).
    

    编译通过、在链接时会提示以下错误信息提示空间不够


2. 解决办法


2.1. libmpllib.lib

在正点原子的资料包里找到适用于F1的libmpllib.lib
硬件资料->MPU9250资料->motion_driver_6.12.zip->mpl libraries->arm->keil->libmpllib_Keil_M3.zip
使用这个lib替换掉原来


2.2. 空间不够

一般使用微库就能解决
将以更精简短小的C库替代标准C库,减小代码大小,使用微库的方法如下:
打开Project->Options->Target,将Use MicroLIB前面的复选框勾上

在这里插入图片描述

其他什么特别的,基本在网上能轻松找到。
还是可以移植成功的,利用串口发送一下姿态角
在这里插入图片描述
因为受到文件监控,这个软件工程就不能直接分享了。


谢谢


http://www.ppmy.cn/news/233363.html

相关文章

【STM32学习】——STM32-I2C外设硬件读写MPU6050软硬件读写波形对比

目录 前言 一、I2C外设 二、硬件I2C操作流程 1.主机发送时序 3.其他时序 4.拓展:软/硬件I2C波形对比 三、硬件I2C读写MPU6050 总结 前言 声明:学习笔记来自江科大自化协B站教程,仅供学习交流!! 上接上次学习的…

工业级64 位AM6231ASGGGAALW/AM6232ATCGGAALW【处理器】AM6234ATCGGAALW

工业级64 位AM6231ASGGGAALW/AM6232ATCGGAALW【处理器】AM6234ATCGGAALW 说明:低成本的AM62x Sitara MPU系列应用处理器专为Linux 应用开发而设计。凭借可扩展的ArmCortex -A53性能和嵌入式功能,例如:双显示支持和3D图形加速,以及广泛的外围设…

魅族M6硬件升级(闪存+电池)

M6硬件升级完毕,庆祝一下!!升级好的M6 贴了磨砂膜的M6升级所需工具 在关注了半年多的FLASH芯片价格,4GB的K9HBG 三星闪存从07年的230多元降到了如今的82元(以上价格全部为中国IC交易网千片的供货价,零售价…

佳能eosr5和r6区别 佳能eosr5和r6价格

两台机器相对比,佳能EOS R5和R6最大的区别在于视频录制性能和像素的不同。佳能EOS R5属于目前为止性能最强的微单,具备民用相机中最强的视频拍摄性能,很适合专业的视频团队使用。 选佳能eosr5还是r6这些点很重要 看过你就懂了 https://jianen…

佳能EOS M6画质相当出色,搭载2420万像素APS-C画幅传感器

佳能EOS M6是一款高品质的微单相机,它不仅拥有2420万像素APS-C画幅传感器带来的出色画质,而且还具备翻转触控屏幕带来的简便操作。这款相机使用一块DIGIC7图像处理器,赋予了EOS M6强大的功能配置。 佳能EOS M6套机

苹果电脑系统壁纸

苹果电脑系统壁纸 提取码:glol

mac os Sierra 原生壁纸分享

下载连接:http://download.csdn.net/detail/yang123465/9705309

Mac系统入门之如何修改桌面背景

当你兴冲冲的从菜鸡驿站提回来一台新的电脑,你欣喜若狂,迫不及待的拆开快递箱,里面是一台苹果电脑,这时,你不禁抓耳挠腮:Mac系统怎么用啊? 下面,这篇专栏教你如何入门Mac系统 https://blog.csdn.net/cyyyyds857/category_12163999.html?spm1001.2014.3001.5482 –––––…