0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

GD32MCU 来源:djl 2019-10-22 14:40 次阅读

1方案介绍

基于GD32F207ZET6的平衡小车,底层接口用到的各个模块分别有:I2C(GPIO模拟)、Timer(周期定时器)、Timer-PWM(PWM控制)、Timer-input(编码器输入)、SPI(GPIO模拟写OLED用)、USART(串口调试和蓝牙通信)、ADC(外部电压测量)。

2设计应用描述及心得总结

看了下提供的测试例程,简单重新新建了一个Template,里面分立的建了三个基本功能:LED、USART和SYSTICK,直接下到开发板就可以用了,直接删减相应的.C文件即可使用。

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

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

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

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

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


MPU6050的读取数据如下所示:

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

可以看出来MPU内部DMP的数据一开始很不稳定,这个过程得有好几秒,稳定了,就OK了,不过也可以通过寄存器,直接读取初始值,然后自己用算法拟合一个欧拉角对比下。

接下来是个大的范围TIMER应用,这里使用了TIMER4的两个通道做电机控制,输出频率是10K,分别使用TIMER3通道1和TIMER2通道2做编码器的输入,用一个TIMER也可以,这里使用了两个。还有个TIMER5作为内部周期定时器5ms,TIMER的调试还算顺利,直接上结果,counta和countb 是编码器的输入,这里接的就是TIMER4的两路PWM。

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

此接口还用了个直接透传蓝牙模块,还有个APP可以链接,使用了串口2与蓝牙模块链接,使用了接收中断,中断函数里直接显示接收到的数据,这里APP的处理就是将手机的屏幕划分为9宫格,然后触摸一个地方传送一个数字,触摸结束(松手),默认发送一个0,这样可以根据数字的顺序,简单的软件实现划屏操作。

3方案实物图

硬件焊接的匆忙,但整体已经出来了,如下所示:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2541

    文章

    50077

    浏览量

    748584
  • 编码器
    +关注

    关注

    44

    文章

    3533

    浏览量

    133426
  • 寄存器
    +关注

    关注

    31

    文章

    5258

    浏览量

    119349
收藏 人收藏

    评论

    相关推荐

    GD32 MCU 移植教程】6、从GD32F1x0和GD32F3x0移植到GD32E230

    GD32E230 系列是 GD 最新推出的 Cortex_M23 系列产品,该系列资源上与既有的 GD32F1x0 以及 GD32F3x0 兼容度非常高。由于
    的头像 发表于 09-04 09:38 185次阅读
    【<b class='flag-5'>GD</b>32 MCU 移植教程】<b class='flag-5'>6</b>、从<b class='flag-5'>GD32F</b>1x0和<b class='flag-5'>GD32F</b>3x0移植到<b class='flag-5'>GD</b>32E230

    GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列

    GD32E230 系列是 GD 的 Cortex_M23 系列产品,GD32F330 系列是 GD 的 Cortex_M4 系列产品, 这两个系列的兼容度非常高。客户会有从
    的头像 发表于 09-03 10:05 525次阅读
    【<b class='flag-5'>GD</b>32 MCU 移植教程】5、<b class='flag-5'>GD</b>32E230 系列移植到 <b class='flag-5'>GD32F</b>330 系列

    GD32 MCU 移植教程】2、从 GD32F303 移植到 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控
    的头像 发表于 08-31 09:36 1109次阅读
    【<b class='flag-5'>GD</b>32 MCU 移植教程】2、从 <b class='flag-5'>GD32F</b>303 移植到 <b class='flag-5'>GD32F</b>503

    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

    19.3-【星曈科技】openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程 使用OpenMV循迹 openMV寻迹与
    的头像 发表于 08-20 11:32 604次阅读
    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32<b class='flag-5'>F103C8T6</b>视觉巡线<b class='flag-5'>小车</b> STM32循迹<b class='flag-5'>小车</b>系列教程

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉巡线小车

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉巡线小车
    的头像 发表于 08-20 11:12 558次阅读
    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与<b class='flag-5'>小车</b>控制 Openmv+STM32<b class='flag-5'>F103C8T6</b>视觉巡线<b class='flag-5'>小车</b>

    STM32平衡小车原理图

    STM32f103c8t6平衡小车原理图
    发表于 07-05 10:54 1次下载

    stm8s207s8t6c这个型号有没有can接口

    stm8s207s8t6c的can接口问题: 1. stm8s207s8t6c这个型号有没有can接口? 2.看官网的资料没有can接口
    发表于 05-07 07:08

    关于STM32F207VF外设USB接口遇到的问题求解

    各位大神,小弟想请问两个问题: (1)对于STM32F207VF IC 如果作为USB device 使用,USB connector 的vbus,dp,dm,id 必须要接到PA9,PA12
    发表于 04-29 07:29

    关于STM32F207VET6运行的疑问求解

    使用芯片:STM32F207VET6 编译环境:MDK5 电源正常:3.3v BOOT0为低 仿真下载发现这样的问题: (1)点击Debug仿真,自动run,点击Reset不能正常复位,点击
    发表于 04-22 06:56

    stm32f103zet6换为stm32f103zct6后编译不通过是怎么回事?

    芯片类型更换:stm32f103zet6 换为 stm32f103zct6, 编译不通过
    发表于 04-02 07:33

    STM32F207死机PC跑飞的原因?怎么解决?

    STM32F207ZET6,使用过程发现有死机跑飞,分析了一下过程,是在正常刷屏的过程中触发了一次ADC的DMA完成中断,中断中执行了一些保存数据到对应结构体的任务,然后中断返回的时候,pc指针跑飞,进了HardFault中断,就死机了。是否有大佬有兴趣协助排查
    发表于 03-19 07:04

    GD32F303 低功耗模式要点

    我们都知道,MCU有低功耗模式,比如GD32F303芯片,就有Sleep、Deepsleep和Standby三种模式。关于这三种模式的具体使用方法,小伙伴们可以参考《GD32F30x系列用户手册》。
    的头像 发表于 01-17 09:40 2249次阅读
    <b class='flag-5'>GD32F</b>303 低功耗模式要点

    gd32f103rct6引脚功能

    GD32F103RCT6是一款由GigaDevice推出的针对嵌入式应用的32位ARM Cortex-M3微控制器。它是一款性价比高、功能丰富的微控制器,集成了强大的处理能力和丰富的外设接口,适用于
    的头像 发表于 12-18 18:11 2057次阅读

    基于FPGA的平衡小车设计

    电机采用的是平衡小车之家的MG310(GMR编码器)电机。底板上有两个TB6612芯片,可以驱动四个电机,除了做平衡小车之外,也可以用来作为四驱车的底板,非常nice,同时支持两种控制
    的头像 发表于 11-30 09:31 708次阅读
    基于FPGA的<b class='flag-5'>平衡</b><b class='flag-5'>小车</b>设计

    STM32F207VC、STM32F205VC例程

    STM32F207VC、STM32F205VC例程| name                 | 描述                                   || :------------------- | ------------
    发表于 11-16 17:02 3次下载