#【软件stm32cubeIDE下配置STM32F407uart1调试SBUS模块-学习笔记-基础样例-遥控小车与四轴模板】
#【軟件stm32cubeIDE下配置STM32F407uartt調試SBUS模塊-學習筆記-基礎樣例-遙控小車與四軸模板】
- 1、前言
- 2、實驗環境以及器材
- 3、第一步:初步了解SBUS
- (1)什么是sbus,簡單說說
- (2)硬件取反
- (3)基本注意點
- 4、第二步:制作硬件取反
- (1)網上硬件圖
- (2)我的硬件圖
- 5、第三步:接上串口試試,先不忙寫代碼
- 6、第四步:代碼實驗
- (1)軟件基本配置,下載口和時鐘
- (2)uart1的DMA等配置
- (3)uart4的配置,用作輸出顯示。
- (4)時鐘配置,然后生成代碼
- (5)加入printf,輸出顯示
- (6)加入uart1的DMA等回調函數
- (7)打印輸出顯示。
- 代碼:實驗代碼連接
- 8、實際效果演示
- 9、后期細節
- (1)接收長度27問題
- (2)判斷斷聯問題,數據接收位【23】位
- 10、參考連接
- (1)硬件取反圖,以及基礎知識了解
- (2)其它人樣例代碼
- 11、硬件連接
- (1)三極管以及電阻
- (2)飛控遙控器
1、前言
最近一段時間在調試飛控遙控器模塊,是基于SBUS,自己在裸機上跑通了,很多細節越值的注意,寫這邊文章也是給自己做個記錄,保持初學者之心,這篇其實跟藍牙那片有相似方式與文章結構。
2、實驗環境以及器材
本次實驗不是只買個藍牙就能解決的,一般幾乎每個人都有一部手機,但不一定沒啥事帶著一套飛控遙控器,而是市面上遙控器又五花八門,本篇針對特定遙控器開發,最文章最后會附上遙控器鏈接。
實物照片:
3、第一步:初步了解SBUS
(1)什么是sbus,簡單說說
翻了一段時間網上的文章后,總結,sbus就是基于串口的一套傳輸協議,就像我們平時使用9600波特率的串口一樣,在使用它時,只是配置上稍微不同。打個比方,就好像鐵軌上能跑綠色鐵皮車,動車組,同樣也能跑高級些的高鐵列車,仔細理解這個比喻,鐵軌沒變,跑的東西,運輸變了。
(2)硬件取反
這個很多文章都說了,要硬件取反,而且時必須硬件取反,軟件只能反向數據位,不能反向停止位啥的,所以不要企圖走捷徑,還是老老實實去焊接個反相器吧。
(3)基本注意點
在使用sbus時候,和普通串口只有一點配置上的區別.
- 波特率100K(100000)
- 停止位 2個
- 校驗EVEN
- sbus數據是:以0F開頭,00為結束的。
如下圖所示(已反向),串口助手打印出來的數據,以及配置,最好每行25bit,方便看。
4、第二步:制作硬件取反
(1)網上硬件圖
這部分網上說挺多了,大部分都大同小異,只有電阻阻值的不同,都是用NPN的8050三級管來做,建議直接網上淘個,具體鏈接也放在后面了。
(2)我的硬件圖
以下出自我靈魂的畫手,主要需要注意的是,三極管引腳,不同型號NPN三極管理論上都可以,但是買完后,一定要對下引腳圖,要不可能就不好使,一臉懵逼,如下圖所示。
5、第三步:接上串口試試,先不忙寫代碼
同之前測試藍牙一樣,焊借好了后,先不著急寫代碼,先看看有數據過來沒有,接上串口,設置好配置,如下圖,是實際邏輯分析儀抓取到的。上半部分是反向完成的數據,下部分是為反向數據。
如下圖,是串口抓取到數據。
你的串口工具基本穩定發送如上數據,那么恭喜你,你基本已經走完一半路程。
6、第四步:代碼實驗
完成第三步,可以進行下一步了,使用編譯器寫程序。
(1)軟件基本配置,下載口和時鐘
(2)uart1的DMA等配置
1)波特率100000 9bit EVEN 2STOP
2)DMA配置
3)中斷配置
(3)uart4的配置,用作輸出顯示。
1)這個想配置DMA就配置不想 普普通通也行,默認就行
2)中斷配置別忘了
(4)時鐘配置,然后生成代碼
(5)加入printf,輸出顯示
我們需要使用printf,幫我們輸出一些信息,加入printf重定向,具體可以看我之前寫的文章。
https://waka-can.blog.csdn.net/article/details/124452661?spm=1001.2014.3001.5502
簡單說,mian.c加入如下代碼
(6)加入uart1的DMA等回調函數
具體代碼我就不一一列舉了,如果需要直接去我代碼里去,覺得CSDN要積分的話,可以私信我要代碼。
(1)初始化聲明下
(2)回調函數
(3)加入中斷函數內
(4)加入轉化函數:通用代碼
(7)打印輸出顯示。
代碼:實驗代碼連接
具體本次代碼連接:https://download.csdn.net/download/qq_22146161/85826413
8、實際效果演示
這個視頻還是放在B站了,有興趣可以看下。
https://www.bilibili.com/video/BV15G411x7TQ/
9、后期細節
(1)接收長度27問題
查看他人編寫的代碼時發現,有uart1接收長度為27位,這個應該都行,只要能順利接收進來就行,也沒必要給太長。
(2)判斷斷聯問題,數據接收位【23】位
查看資料時,發現有個判斷斷聯標志位,這個設計非常好,如果在四軸上,一旦的斷聯,基本是損害物品,所以這個位需要注意下,最好查查這個位怎么取,怎么用。
10、參考連接
(1)硬件取反圖,以及基礎知識了解
自己開始也是小白,從他人哪里獲取知識,當然需要標明從哪里獲取。
參考連接:https://blog.csdn.net/peach_orange/article/details/52958385
參考連接:https://blog.csdn.net/ReadAir/article/details/102631513
(2)其它人樣例代碼
如果你想要keil版本的,在正點原子社區有人做了,自己驗證過,可以的。
參考連接:http://www.openedv.com/forum.php?mod=viewthread&tid=332860
11、硬件連接
(1)三極管以及電阻
網上某寶非常多:8050三極管等
(2)飛控遙控器
網上某寶非常多:飛控遙控:HOTRC HT-6A航模遙控器接收機飛控套裝 DIY自制6通道
總結
以上是生活随笔為你收集整理的#【软件stm32cubeIDE下配置STM32F407uart1调试SBUS模块-学习笔记-基础样例-遥控小车与四轴模板】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集成算法——Adaboost代码
- 下一篇: 托盘