学习中遇到的问题及解决办法
- 在调用头文件的时候注意不能重复调用,例如在主函数里面有
#include “stm32f10x.h”
的时候在其头文件内部有#ifndef__STM32F10X_H
和#define__STM32F10X_H
这两段代码,而在第一次编译的时候这个”__STM32F10X_H
“宏没有被定义,所以ifndef为真所以就定义宏并编译下面的代码和变量声明,如果没有这个判断的话代码就会被重复定义。这个是条件变异的作用。 - 在编程过程中建议开启代码自动补全功能,类似以c语言中当打出
->
的时候后面会给出结构体成员的选项。 - 在从开发板移植程序到核心板的时候注意更改启动文件,也就是startup_stm32f10x_hd更改为startup_stm32f10x_md,然后在工程内点击Manage里面添加即可,之后点击魔术棒里面的C/C++找到Define中的名称将HD改为MD,最后更改芯片名称为STM32F103C8。
MPU6050学习
- 可直接用内部的DMP模块进行解算,解算得到的结果输出给STM32的控制器中,我们可以直接从其中获得姿态角。在ACD数模转换中量程越大,精度就越低。
- 获得的原始数据乘以其LSB得到处理数据便于观察。
已解决的问题
- STM32的基础知识
- 程序的移植问题
- MPU6050的姿态角获得问题
- OLED的数据显示以及字模处理问题
下周待解决的问题
- 输出的姿态角在oled屏幕上显示(貌似6050已经占用了I2C的硬件SDA和SCL。。。。)
- 电机驱动