stm32串口通信協(xié)議簡(jiǎn)單教程._第1頁(yè)
stm32串口通信協(xié)議簡(jiǎn)單教程._第2頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、STM32串口通信協(xié)議簡(jiǎn)單教程一、修改串口UART1IT工程模版用KeilMDK打開短學(xué)期資料中的工程示例f串口UART1IT示例,查看main.c代碼如圖1所示:Vi圖1UART1IT串口示例代碼打開文件列表中的stm32f10x_it.c文件,找到UART1中斷函數(shù)如圖2所示代碼:圖2UART1串口中斷函數(shù)為方便起見,將整個(gè)USART1_IRQHandler函數(shù)剪切到main.c文件末尾如圖3所示。并刪除stm32f10x_it.c文件中的sp變量定義,如圖4所示。圖3移動(dòng)串口中斷函數(shù)圖4去除stm32fl0x_it.c中的sp變量聲明重新編譯一次工程,看看修改是否出現(xiàn)錯(cuò)誤,編譯失敗出現(xiàn)錯(cuò)

2、誤則需仔細(xì)檢查剛才的修改是否正確。編譯成功,下載工程到實(shí)驗(yàn)板,關(guān)閉下載程序。將實(shí)驗(yàn)板BOOT跳線至正常運(yùn)行模式并重新上電。打開串口調(diào)試助手,選擇實(shí)驗(yàn)板USB虛擬串口并打開,如圖5所示??梢钥吹綀D中窗口不停的接收到“Helloworl這”的字符串?dāng)?shù)據(jù)。在發(fā)送區(qū)域輸入字符1,點(diǎn)擊發(fā)送按鈕,可以觀察到實(shí)驗(yàn)板的流水燈速度變快了很多。Hello血11Q;七山IU114出.14KkllaHklloxLdlqarldllirLdlvrld!wdtLd.1warLd.!.訓(xùn)單申口肪閔丈限i.覽適捋ta狀応首弩了解吊曲故感濃卽和 協(xié)說(shuō)藪館杭加口心£ggy-QTi 協(xié)儀歡鋸輕間OxODl丄宇滬 檢塹方式

3、:初頭與科毀甌IR附單宇節(jié)Jffl戦AS口工碼也字節(jié))如血3百OxUDxZB0m31'JI:!:l>JOnDE-躺直irM;怕吃'陽(yáng)叫為葉制d涸百兩牛各'.Dx3fiOmD0k2B0k310k<40k45OkPD"THiSKS中#機(jī)腳越艸認(rèn)十口對(duì)E十射艸十狀念十吃蛤El十忻帆施申鍵科用口幻二和033時(shí)用按拠K2fllt焰0x4W0x55<-J脫按粒按|和槍在main函數(shù)之前,添加按鍵掃描代碼如圖6所示,然后在main函數(shù)中,添加sendstr數(shù)組,key和oldkey兩個(gè)整數(shù)變量,如圖7所示。圖6添加按鍵掃描函數(shù)圖7添加相關(guān)變量接下來(lái),在ma

4、in函數(shù)的while主循環(huán)中,添加發(fā)送按鍵狀態(tài)代碼如圖8所示。同時(shí),將main函數(shù)中的Helloworld字符串發(fā)送行注釋掉,如圖9所示。為使按鍵響應(yīng)靈敏,可以將main.c文件開頭的sp變量初始值由100改為10。注意,資料包里面的串口調(diào)試助手UartAssit軟件容易造成虛擬串口占用,甚至使系統(tǒng)崩潰??紤]到使用方便,推薦使用sscom42軟件。這里給大家一個(gè)下載地址圖8main主函數(shù)中的發(fā)送按鍵狀態(tài)代碼入人廠圖9注釋Helloworld發(fā)送行編譯并下載程序后,接上串口調(diào)試助手,我們可以看到調(diào)試助手窗口中的結(jié)果如圖10所示。由圖中可以看到,調(diào)試助手接收到”6MK2D6MK2U”,這表示實(shí)驗(yàn)板

5、按鍵K2被按下和放開兩個(gè)動(dòng)作。圖10串口調(diào)試助手結(jié)果接下來(lái),為完成協(xié)議要求,在main函數(shù)之前添加校驗(yàn)碼函數(shù)代碼如圖11所示。6MI2D6MK2U打幵文件IIS件茗Isscom4丄測(cè)試版作昔:聶1強(qiáng)(TT1Emaikmcu52©163.cortt2Q07.''9昂Zl曰3工|工詡呂口|爾廠HE焜示心杠傑存彌"拆述:f打羽謚由俸止|保存窗口|清除窗口|龍礦I円發(fā)送文件I圖11添加校驗(yàn)碼函數(shù)代碼在發(fā)送按鍵狀態(tài)幀之前,添加校驗(yàn)碼函數(shù)如圖12所示。圖12添加校驗(yàn)碼操作編譯并下載程序后,接上串口調(diào)試助手,可以看到STM32串口發(fā)送按鍵狀態(tài)數(shù)據(jù)幀如圖13所示。如圖中所示

6、,當(dāng)按鍵K3按下時(shí),STM32發(fā)送“6MK3D45”其16進(jìn)制數(shù)據(jù)為“364D4B334434350D0A”,0x36+0x4D+0x4B+0x33+0x44=0x0145,保留一個(gè)字節(jié)則為0x45。0x45表示為兩字節(jié)ASCII碼,就是字符'4'和字符'5',即對(duì)應(yīng)“6MK3D45”最后兩個(gè)字符。由此可知,按鍵狀態(tài)發(fā)送功能完成。<20汪已打訐36K即詔”1元確無(wú)瀟更1閤L3'芫施的按柚狀態(tài)發(fā)送蝕鬟3揺收爲(wèi)燈揀制命專衙單的亮燈控刨命令加卜所癇惟改串口接啜中赫函截如哥1乩圖工直所示.曲接也屮斷承席屮.慢用了発槪于狀蘇機(jī)的接收方fife.fsn用于表示

7、當(dāng)祁議感*桂收亮燈授制命牛時(shí).抽單的狀血薦按囲表示血圈1410x3-0138毗端發(fā)選亮爍禎頭4-TH2D+fl號(hào)亠檯整和+牯尾H沖燈號(hào)溝丄B的ASCIII虬即0k31-AM3S膽瑞發(fā)送知:心W+OKlU+ff號(hào)*橙豔和4啊再WYf.dflKM.ccrr5竊CTSlD5fcnRL»=l圖14亮燈命令接收狀態(tài)轉(zhuǎn)換圖圖15串口接收中斷程序1圖16串口接收中斷程序2編譯并下載程序,接上串口調(diào)試助手。如圖17所示,在調(diào)試窗口中選中“HEX發(fā)送”,然后在下方的發(fā)送行填入字符串“364D2B3100000D”。點(diǎn)擊“發(fā)送”按鈕則可以看到接收欄中顯示“0K!”字符串。在此,校驗(yàn)碼0x000x00沒有

8、任何意義,只是占個(gè)位置。圖17串口調(diào)試助手發(fā)送數(shù)據(jù)接下來(lái),在main函數(shù)之前添加接收數(shù)據(jù)校驗(yàn)函數(shù)如圖18所示。|b咋BJStJSSiJJlEmail;mcl&21M.rom.2Q07/9CK!V8存OOC-雄r徉I止Ifirn;口I*耀砸dj.-關(guān)闍車n聲廠廁堆云"曲口鼻聞苗口如樂茲匚rtifu由rdirratsr審對(duì)碉lyrrAr詡城逐F晅衛(wèi)空葉Wftl|?C84T審B山朋匚砂麗満粒川兩圖18接收數(shù)據(jù)校驗(yàn)函數(shù)修改串口接收中斷中的幀尾回送0K字符串程序行,如圖19所示。為了看到顯示效果將main函數(shù)中的流水燈部分代碼注釋掉,如圖20所示。圖19幀尾校驗(yàn)功能代碼圖20main函

9、數(shù)注釋流水燈代碼編譯成功并下載程序后,接上串口調(diào)試助手,如圖21所示。在調(diào)試窗口下方的發(fā)送行中填入發(fā)送字符串“364D2B3100000D”,選中“HEX發(fā)送”,點(diǎn)擊發(fā)送按鈕后可以看到接收欄中顯示“Errchk,DF,00”字符串,表示正確的校驗(yàn)碼應(yīng)為字符'D'和字符'F'的ASCII碼值。點(diǎn)擊窗口中的“HEX顯示”可以將接收欄中的字符串顯示為16進(jìn)制代碼,從中可以找到字符'D'和'F'的ASCII碼值為0x44和0x46,修改發(fā)送行字符串為“364D2B3144460D”,再次點(diǎn)擊發(fā)送,結(jié)果如圖21所示。要在實(shí)驗(yàn)板上看到效果,可以先發(fā)送滅燈命令“364D2D3145310D”,先將第一個(gè)燈

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論