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前面的复选框勾上

其他什么特别的,基本在网上能轻松找到。
还是可以移植成功的,利用串口发送一下姿态角

因为受到文件监控,这个软件工程就不能直接分享了。


谢谢

STM32F103移植mpu9250相关推荐

  1. STM32F103移植FreeRTOS必须搞明白的系列知识---1(Cortex-CM3中断优先级)

    STM32F103移植FreeRTOS必须搞明白的系列知识---1(Cortex-CM3中断优先级) STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级) ...

  2. stm32f103移植ucosIII系统

    文章目录 一. 使用stmcubemax创建工程 二. 准备uCOSIII源码 三. 移植前准备 1. 在ucos源码中新建两个文件夹 2. 在uC-BSP文件夹下新建bsp.c和bsp.h文件 3. ...

  3. 基于STM32F103移植华为LiteOS物联网系统

    基于STM32F103移植华为LiteOS物联网系统 本实验是通过学习野火的<物联网操作系统 LiteOS开发实战指南>参考学习的. 1.移植前的准备 LiteOS 的源码可从 LiteO ...

  4. STM32F103移植LiteOS之跑马灯实验

    相关文章: STM32F103移植LiteOS保姆级教程(基于Huawei-LiteOS-studio) STM32F103移植LiteOS保姆级教程(基于Ubuntu平台) 在编译通过且能成功烧录的 ...

  5. STM32F103移植uCOS-III

    本文主要叙述使用STM32F103C8T6移植uCOSIII操作系统,构建3个任务,以1s和3s洲际对LED进行点亮-熄灭控制,以2s周期通过串口发送"hello uc/OS! 欢迎来到RT ...

  6. stm32f103移植到stm32f105的时钟问题

    最近移植stm32f103工程至stm32f105单片机中踩的坑,103工程直接原封不动下载到105单片机中,因为它们完全兼容,是可以正常运行的.但是如果一些配置不进行修改,很多功能(105具备但是1 ...

  7. 基于STM32F103移植FreeRTOS教程

    前言 本教程只针对移植实操,关于理论部分请另行百度学习. 本教程移植实操基于正点原子源码.教程手册进程移植. 移植实操 1.将正点原子跑马灯程序源码复制一份,添加一个文件夹对FreeRTOS源码进行管 ...

  8. STM32F103移植LiteOS保姆级教程(基于Ubuntu平台)

    前言 嵌入式软件常用linux系统进行开发,LiteOS于linux平台上的移植相比win的移植会简单许多,本文基于Ubuntu平台对STM32F103的LiteOS移植教程进行详细讲解. 步骤 1. ...

  9. stm32f103移植到f0_STM32F042替换STM32F103

    因为从事汽车CAN总线及多媒体解码盒,常常需要解一些简单的CAN数据,需要的硬件IO不多,仅仅是CAN+UART,所以最近为了节省成本,也是花了不少心思. 直到最近发现了STM32F042,据介绍,这 ...

最新文章

  1. [Educational Codeforces Round 16]A. King Moves
  2. java排序算法代码_Java实现八种排序算法(代码详细解释)
  3. 什么是网络套接字(Socket)?
  4. 【随机】Kuroni and the Punishment(CF1305F)
  5. 【转】C#中Invoke的用法
  6. 2.2基本算法之递归和自调用函数_7592 求最大公约数问题
  7. php提交raw_PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
  8. 信息学奥赛一本通C++语言——1112:最大值和最小值的差
  9. xp无法使用计算机管理员权限,xp无法无法使用管理员权限运行软件的解决步骤...
  10. rest api是什么_一文搞懂什么是RESTful API
  11. 北京的201个蓝天之清晨随拍
  12. rez注入器源码_CF-rez-Tool crossfire的REZ文件全套修改工具 - 下载 - 搜珍网
  13. 初学QML之QML和C++混合方法
  14. CORBA版HelloWorld
  15. 计算机图形学实用教程苏小红,计算机图形学实用教程(第4版)
  16. Juce之旅-第一个例子(图形窗口)
  17. 567LH-DP24 驱动器 REO ELEKTRONIK NC系列
  18. 注册华为云用户: 访问官网 https://huaweicloud.com/ 注册华为云用户(需手机号验证) 登录并完成实名认证 为账号充值不少于100元(不用时可提现
  19. 内核辅助函数系列 001 --- __ffs(unsigned long word):第一个非 0 位
  20. 直接更改maven的settings设置jdk版本

热门文章

  1. 4月15日SLB升级公告
  2. 如何用各种编程语言杀死一条龙
  3. idea总结几个不错的插件
  4. 解决IDEA GIT密码输入错误后,报Authentication failed ... 不再弹出输入框,提交更新失败
  5. linux改变文件所属用户和组
  6. ASP.NET Core Docker Nginx分权,多网站部署
  7. iOS高德地图SDK定位和搜索附近信息的具体使用
  8. Ubuntu 14.04 安装 MongoDB
  9. 必须要知道Java如何取得当前路径
  10. 信息化基础建设 工作流开发