基于STM32的串口數(shù)據(jù)包的傳輸

姓名:趙宗明

學號:19021211230

【嵌牛導讀】:STM32 ? ?串口通信 ? ?數(shù)據(jù)包

【嵌牛鼻子】:利用電腦端通過串口通信控制單片機內部的參數(shù)以及單片機內部數(shù)據(jù)包向電腦端傳輸并顯示

【嵌牛提問】:串行接口是連接單片機和PC機的一種簡單方式平窘。單片機一個字節(jié)是如何收發(fā)的?一串數(shù)據(jù)是如何收發(fā)的蒋失?電腦端一個字節(jié)鸿脓、一串數(shù)據(jù)是如何收發(fā)的删窒?這個項目向大家展示了如何使用電腦端與單片機進行數(shù)據(jù)包的相互傳遞枫甲。

【嵌牛正文】:

1.實驗介紹
本實驗主要用到了STM32的串口模塊、IIC模塊副瀑,定時器模塊、LED模塊恋谭,借助了開源的MPU6050所使用的DMP庫糠睡,還使用了基于G語言圖形化編程的Labview軟件開發(fā)的上位機。MCU通過IIC協(xié)議實時向MPU-6050傳感器讀取數(shù)據(jù)并打包發(fā)送至上位機箕别,并在電腦端以波形的形式實時顯示傳感器的角度數(shù)據(jù)铜幽。同時電腦端發(fā)送四個角度值數(shù)據(jù)至MCU作為角度的報警值滞谢,傳感器將此四個數(shù)據(jù)作為兩個軸的(俯仰角串稀、翻滾角)角度界限,當角度超過這四個界限值時以4個LED作為報警提醒用戶狮杨。

上位機前面板

2.實驗目的
·熟練使用串口收發(fā)模塊母截,掌握串口收發(fā)的原理和具體實現(xiàn)方法。
·熟練掌握MCU與上位機的雙向通信方式和數(shù)據(jù)包的傳輸及校驗方式橄教。

3.實驗內容
任務要求:MCU利用IIC協(xié)議向MPU-6050傳感器獲取數(shù)據(jù)清寇,并將數(shù)據(jù)傳輸至DMP模塊喘漏,進行數(shù)據(jù)的解算得到傳感器的實時角度,并將實時的角度通過串口發(fā)送至電腦端华烟,電腦端獲取角度數(shù)據(jù)并以波形的形式實時顯示翩迈,同時,用戶可以在上位機操作界面輸入角度的界限值盔夜,實現(xiàn)下位機的光報警功能负饲。
軟件工具以及硬件平臺:
開發(fā)軟件利用了KeilSoftware官方提供的Keil5和美國國家儀器(NI)公司研制Labview圖形化編程環(huán)境。
硬件使用了ST公司內核為Cortex-M3的Stm32f103-vet6喂链,基于C語言編程開發(fā)返十。

4.實驗原理及實現(xiàn)方法
該設計主要包括以下幾個重要模塊:波特率產生模塊、數(shù)據(jù)包接收模塊椭微、數(shù)據(jù)包發(fā)送模塊洞坑、LED控制模塊、上位機蝇率、IIC模塊迟杂。

以下為該設計的實現(xiàn)框圖:

原理框圖

4.1模塊設計
波特率產生模塊:

波特率表示每秒鐘傳送的碼元符號的個數(shù),是衡量數(shù)據(jù)傳送速率的指標本慕,它用單位時間內載波調制狀態(tài)改變的次數(shù)來表示逢慌。可以利用70M系統(tǒng)時鐘通過計數(shù)的方式產生115200波特率模塊連接至發(fā)送和接收模塊间狂。當RX或TX模塊發(fā)來波特率請求信號時攻泼,波特率產生模塊開始計數(shù),當計數(shù)值達到數(shù)據(jù)發(fā)送或接收所需數(shù)值時模塊產生輸出鉴象,TX或RX接收到信號時便執(zhí)行發(fā)送或接收的操作忙菠。本設計利用了庫函數(shù)的方式,選擇了115200的傳輸波特率纺弊。

串口發(fā)送模塊:

?????? 串口發(fā)送數(shù)據(jù)包的基礎是:串口正確發(fā)送一個字節(jié)的數(shù)據(jù)牛欢。串口發(fā)送一幀(一個字節(jié))數(shù)據(jù)的格式為:起始位+8bit數(shù)據(jù)+停止位,所以發(fā)送一組數(shù)據(jù)實際傳輸?shù)臄?shù)據(jù)為10bit淆游。該設計數(shù)據(jù)發(fā)送涉及多個數(shù)據(jù)的傳輸傍睹,所以采用了數(shù)據(jù)包的方式利用幀頭幀尾校驗進行數(shù)據(jù)傳輸及解析。MCU端串口發(fā)送格式為:

0XA5(幀頭)+ AngleX_H + Angle X_L + + AngleY_H + Angle Y_L + 0XC5(幀尾)犹菱。上位機接收端利用同樣的格式利用狀態(tài)機的方式解析數(shù)據(jù)拾稳,并將其實時顯示。因為串口每次發(fā)送一幀數(shù)據(jù)(一個字節(jié))腊脱,所以16位的數(shù)據(jù)必須將其拆分為高8位和低8位再將其發(fā)送访得,接收端接收到后在將兩個8位數(shù)據(jù)整合為16位數(shù)據(jù)。

以下為數(shù)據(jù)發(fā)送的具體實現(xiàn)方法:

串口接收模塊:

串口接收模塊較串口發(fā)送更為復雜陕凹,因為串口要想從數(shù)據(jù)包中得到有效數(shù)據(jù)就得確保接收正確的數(shù)據(jù)包并無誤的將其解析悍抑。串口接收模塊和串口發(fā)送模塊調用同樣的波特率產生模塊鳄炉,均在該波特率下所計算的計數(shù)值處進行數(shù)據(jù)的收發(fā)。同樣搜骡,接收數(shù)據(jù)包的基礎是穩(wěn)定的接收一幀數(shù)據(jù)拂盯。

接收一幀數(shù)據(jù)的原理:Stm32的RX引腳是一位一位串行的得到信號,因為發(fā)送端發(fā)送一幀數(shù)據(jù)的格式為:起始位+8bit數(shù)據(jù)+停止位记靡,所以接收端也應該以該格式去解析數(shù)據(jù)磕仅,觀察下圖


串口傳輸時序圖

本設計需要接收數(shù)據(jù)包,也就是需要解析多幀數(shù)據(jù)簸呈,該設計中利用了串口中斷的方式去解析有效數(shù)據(jù)榕订。
電腦端發(fā)送數(shù)據(jù)的格式為:、
‘空格’+ ‘元素號’+‘:’+‘數(shù)據(jù)’(例:“0:12 1:24 2:48 3:64”)蜕便,因為電腦端發(fā)送字符比較簡單劫恒,所以本設計采用了電腦端發(fā)送字符數(shù)據(jù),在MCU上解析為十進制數(shù)據(jù)轿腺。具體實現(xiàn)方法如下:




?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末两嘴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子族壳,更是在濱河造成了極大的恐慌憔辫,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仿荆,死亡現(xiàn)場離奇詭異贰您,居然都是意外死亡,警方通過查閱死者的電腦和手機拢操,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門锦亦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人令境,你說我怎么就攤上這事杠园。” “怎么了舔庶?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵抛蚁,是天一觀的道長。 經(jīng)常有香客問我惕橙,道長瞧甩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任吕漂,我火速辦了婚禮亲配,結果婚禮上尘应,老公的妹妹穿的比我還像新娘惶凝。我一直安慰自己吼虎,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布苍鲜。 她就那樣靜靜地躺著思灰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪混滔。 梳的紋絲不亂的頭發(fā)上洒疚,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音坯屿,去河邊找鬼油湖。 笑死,一個胖子當著我的面吹牛领跛,可吹牛的內容都是我干的乏德。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼吠昭,長吁一口氣:“原來是場噩夢啊……” “哼喊括!你這毒婦竟也來了?” 一聲冷哼從身側響起矢棚,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤郑什,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒲肋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘑拯,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年兜粘,在試婚紗的時候發(fā)現(xiàn)自己被綠了强胰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡妹沙,死狀恐怖偶洋,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情距糖,我是刑警寧澤玄窝,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站悍引,受9級特大地震影響恩脂,放射性物質發(fā)生泄漏。R本人自食惡果不足惜趣斤,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一俩块、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦玉凯、人聲如沸势腮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捎拯。三九已至,卻和暖如春盲厌,著一層夾襖步出監(jiān)牢的瞬間署照,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工吗浩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留建芙,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓懂扼,卻偏偏與公主長得像岁钓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子微王,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容