STM32F103移植mpu9250
STM32F103移植mpu9250
- 1. 需求和来源
- 1.1. 基本配置
- 1.2. 遗留问题
- 2. 解决办法
- 2.1. libmpllib.lib
- 2.2. 空间不够
1. 需求和来源
回归技术的第二天,需要对机器人下层执行器做优化
外设不算多,用STM32F103C8T6刚刚好留一个测试引脚
但是在网上找不到比较好的mpu9250在STM32F103的应用例程
那就只能自己来了
直接移植正点原子阿波罗F429的mpu9250例程
简单的移植,修改相关文件和添加头文件包含之类,的就不多说
就是说说过程中会碰到的一些问题
1.1. 基本配置
- 按F429例程添加预定义宏:
USE_HAL_DRIVER,STM32F429xx,MPL_LOG_NDEBUG=1,EMPL,MPU9250,EMPL_TARGET_STM32F4
- 修改编译优化等级
- MPL 代码,要求在
MDK Options for Target
的C/C++
选项卡里面要勾选 C99 模式,否则编译出错
1.2. 遗留问题
之后就会遇到网上或者一些教程上比较少提到的问题
出现下列错误:
.\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不能直接使用
出现下列错误:
.\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相关推荐
- STM32F103移植FreeRTOS必须搞明白的系列知识---1(Cortex-CM3中断优先级)
STM32F103移植FreeRTOS必须搞明白的系列知识---1(Cortex-CM3中断优先级) STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级) ...
- stm32f103移植ucosIII系统
文章目录 一. 使用stmcubemax创建工程 二. 准备uCOSIII源码 三. 移植前准备 1. 在ucos源码中新建两个文件夹 2. 在uC-BSP文件夹下新建bsp.c和bsp.h文件 3. ...
- 基于STM32F103移植华为LiteOS物联网系统
基于STM32F103移植华为LiteOS物联网系统 本实验是通过学习野火的<物联网操作系统 LiteOS开发实战指南>参考学习的. 1.移植前的准备 LiteOS 的源码可从 LiteO ...
- STM32F103移植LiteOS之跑马灯实验
相关文章: STM32F103移植LiteOS保姆级教程(基于Huawei-LiteOS-studio) STM32F103移植LiteOS保姆级教程(基于Ubuntu平台) 在编译通过且能成功烧录的 ...
- STM32F103移植uCOS-III
本文主要叙述使用STM32F103C8T6移植uCOSIII操作系统,构建3个任务,以1s和3s洲际对LED进行点亮-熄灭控制,以2s周期通过串口发送"hello uc/OS! 欢迎来到RT ...
- stm32f103移植到stm32f105的时钟问题
最近移植stm32f103工程至stm32f105单片机中踩的坑,103工程直接原封不动下载到105单片机中,因为它们完全兼容,是可以正常运行的.但是如果一些配置不进行修改,很多功能(105具备但是1 ...
- 基于STM32F103移植FreeRTOS教程
前言 本教程只针对移植实操,关于理论部分请另行百度学习. 本教程移植实操基于正点原子源码.教程手册进程移植. 移植实操 1.将正点原子跑马灯程序源码复制一份,添加一个文件夹对FreeRTOS源码进行管 ...
- STM32F103移植LiteOS保姆级教程(基于Ubuntu平台)
前言 嵌入式软件常用linux系统进行开发,LiteOS于linux平台上的移植相比win的移植会简单许多,本文基于Ubuntu平台对STM32F103的LiteOS移植教程进行详细讲解. 步骤 1. ...
- stm32f103移植到f0_STM32F042替换STM32F103
因为从事汽车CAN总线及多媒体解码盒,常常需要解一些简单的CAN数据,需要的硬件IO不多,仅仅是CAN+UART,所以最近为了节省成本,也是花了不少心思. 直到最近发现了STM32F042,据介绍,这 ...
最新文章
- [Educational Codeforces Round 16]A. King Moves
- java排序算法代码_Java实现八种排序算法(代码详细解释)
- 什么是网络套接字(Socket)?
- 【随机】Kuroni and the Punishment(CF1305F)
- 【转】C#中Invoke的用法
- 2.2基本算法之递归和自调用函数_7592 求最大公约数问题
- php提交raw_PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
- 信息学奥赛一本通C++语言——1112:最大值和最小值的差
- xp无法使用计算机管理员权限,xp无法无法使用管理员权限运行软件的解决步骤...
- rest api是什么_一文搞懂什么是RESTful API
- 北京的201个蓝天之清晨随拍
- rez注入器源码_CF-rez-Tool crossfire的REZ文件全套修改工具 - 下载 - 搜珍网
- 初学QML之QML和C++混合方法
- CORBA版HelloWorld
- 计算机图形学实用教程苏小红,计算机图形学实用教程(第4版)
- Juce之旅-第一个例子(图形窗口)
- 567LH-DP24 驱动器 REO ELEKTRONIK NC系列
- 注册华为云用户: 访问官网 https://huaweicloud.com/ 注册华为云用户(需手机号验证) 登录并完成实名认证 为账号充值不少于100元(不用时可提现
- 内核辅助函数系列 001 --- __ffs(unsigned long word):第一个非 0 位
- 直接更改maven的settings设置jdk版本