1方案介紹
本方案采用高性能GD32F207系列MCU開發平衡小車的底層接口。用到的各個模塊分別有: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作品實物圖+視頻
硬件焊接的匆忙,但整體已經出來了,如下所示:
-
傳感器
+關注
關注
2553文章
51505瀏覽量
757141 -
編碼器
+關注
關注
45文章
3679瀏覽量
135356 -
定時器
+關注
關注
23文章
3256瀏覽量
115484
發布評論請先 登錄
相關推薦
AN207 GD32G5x3三角函數加速器TMU的使用說明
![AN<b class='flag-5'>207</b> <b class='flag-5'>GD</b>32G5x3三角函數加速器TMU的使用說明](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN030 GD32F47x&F42x與GD32F45x&F40x系列間的差異
![AN030 <b class='flag-5'>GD32F</b>47x&<b class='flag-5'>F</b>42x與<b class='flag-5'>GD32F</b>45x&<b class='flag-5'>F</b>40x系列間的差異](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列
![【<b class='flag-5'>GD</b>32 MCU 移植教程】9、從 STM32<b class='flag-5'>F</b>10x 系列移植到 <b class='flag-5'>GD32F</b>30x 系列](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHYWASdt6AAA4EF8E1O4442.png)
【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系
![【<b class='flag-5'>GD</b>32 MCU 移植教程】8、從 STM32<b class='flag-5'>F</b>4xx 系列移植到 <b class='flag-5'>GD32F</b>4xx 系](https://file1.elecfans.com/web2/M00/06/61/wKgaombaXZ6AB4PtAABI6uZ03C4508.png)
【GD32 MCU 移植教程】7、從 GD32F10x 移植到 GD32E103
![【<b class='flag-5'>GD</b>32 MCU 移植教程】7、從 <b class='flag-5'>GD32F</b>10x 移植到 <b class='flag-5'>GD</b>32E103](https://file1.elecfans.com/web2/M00/06/3A/wKgaombZC9iADDHsAAAzqJTGQus009.png)
【GD32 MCU 移植教程】6、從GD32F1x0和GD32F3x0移植到GD32E230
![【<b class='flag-5'>GD</b>32 MCU 移植教程】6、從<b class='flag-5'>GD32F</b>1x0和<b class='flag-5'>GD32F</b>3x0移植到<b class='flag-5'>GD</b>32E230](https://file1.elecfans.com/web2/M00/05/2B/wKgZombXuiGAMp0PAAAraaER_q4744.png)
【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列
![【<b class='flag-5'>GD</b>32 MCU 移植教程】5、<b class='flag-5'>GD</b>32E230 系列移植到 <b class='flag-5'>GD32F</b>330 系列](https://file1.elecfans.com/web2/M00/05/02/wKgZombWbr-ADGCPAAA9iVnbaUU566.png)
【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503
![【<b class='flag-5'>GD</b>32 MCU 移植教程】2、從 <b class='flag-5'>GD32F</b>303 移植到 <b class='flag-5'>GD32F</b>503](https://file1.elecfans.com/web2/M00/05/B4/wKgaombSc4eAC86hAAB_e6oIxhc582.png)
【「ARM MCU嵌入式開發 | 基于國產GD32F10x芯片」閱讀體驗】+書籍整體概況
【GD32F303紅楓派開發板使用手冊】第二十講 SPI-SPI NAND FLASH讀寫實驗
![【<b class='flag-5'>GD32F</b>303紅楓派開發板使用手冊】第二十講 SPI-SPI NAND FLASH讀寫實驗](https://file1.elecfans.com/web2/M00/F1/AD/wKgaomZzisiAamI-AABGtAQwDgo073.png)
【GD32F470紫藤派開發板使用手冊】第十一講 SPI-SPI NOR FLASH讀寫實驗
![【<b class='flag-5'>GD32F</b>470紫藤派開發板使用手冊】第十一講 SPI-SPI NOR FLASH讀寫實驗](https://file1.elecfans.com/web2/M00/E6/51/wKgZomZGuYCAbqxgAAAj5ISjOEU463.png)
評論