1方案介绍
基于GD32F207ZET6的平衡小车,底层接口用到的各个模块分别有:I2C(GPIO模拟)、Timer(周期定时器)、Timer-PWM(PWM控制)、Timer-input(编码器输入)、SPI(GPIO模拟写OLED用)、USART(串口调试和蓝牙通信)、ADC(外部电压测量)。
2设计应用描述及心得总结
看了下提供的测试例程,简单重新新建了一个Template,里面分立的建了三个基本功能:LED、USART和SYSTICK,直接下到开发板就可以用了,直接删减相应的.C文件即可使用。

初始模版好了,首先最重要的传感器,就地取材,就用MPU6050了,移植下官方的DMP,这个花了点时间,问题出现在MDP内部fifo的溢出,解决的方法如下如所示:

这是因为读取不及时导致内部FIFO溢出,这里正好清除了一下,再次读取就OK了,修改read代码,如下图所示:

MPU6050的读取数据如下所示:

可以看出来MPU内部DMP的数据一开始很不稳定,这个过程得有好几秒,稳定了,就OK了,不过也可以通过寄存器,直接读取初始值,然后自己用算法拟合一个欧拉角对比下。
接下来是个大的范围TIMER应用,这里使用了TIMER4的两个通道做电机控制,输出频率是10K,分别使用TIMER3通道1和TIMER2通道2做编码器的输入,用一个TIMER也可以,这里使用了两个。还有个TIMER5作为内部周期定时器5ms,TIMER的调试还算顺利,直接上结果,counta和countb 是编码器的输入,这里接的就是TIMER4的两路PWM。

此接口还用了个直接透传蓝牙模块,还有个APP可以链接,使用了串口2与蓝牙模块链接,使用了接收中断,中断函数里直接显示接收到的数据,这里APP的处理就是将手机的屏幕划分为9宫格,然后触摸一个地方传送一个数字,触摸结束(松手),默认发送一个0,这样可以根据数字的顺序,简单的软件实现划屏操作。
3方案实物图
硬件焊接的匆忙,但整体已经出来了,如下所示:
-
传感器
+关注
关注
2573文章
54366浏览量
785918 -
编码器
+关注
关注
45文章
3903浏览量
141418 -
寄存器
+关注
关注
31文章
5588浏览量
129047
发布评论请先 登录
从riscv底层原理分析gd32vf103的中断行为
基于兆易创新GD32F527系列MCU的多媒体门禁系统解决方案
AN207 GD32G5x3三角函数加速器TMU的使用说明
AN030 GD32F47x&F42x与GD32F45x&F40x系列间的差异

关于GD32F207ZET6的平衡小车底层接口设计的分析和应用
评论