




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第第頁51單片機(jī)-再次熟悉串口串口是非常常用的一個調(diào)試工具,我們都必須熟練使用串口的各個功能。
1.題目要求和解決方案
我們要做的是,電腦端發(fā)送字符串過來給單片機(jī),然后單片機(jī)這邊接收完之后要回復(fù)給電腦端,回復(fù)內(nèi)容為“接收完成!”。單片機(jī)這邊把接收到的數(shù)據(jù)存放在定義好的全局變量數(shù)組里面,我們可以通過按K4發(fā)送回去給電腦端查看剛剛接收到的內(nèi)容并把它顯示出來。
我們要知道,一個漢字是需要兩個字節(jié)內(nèi)存的,比如電腦端發(fā)送的字符串為“好好學(xué)習(xí),天天向上!”其中的兩個標(biāo)點(diǎn)符號也是中文輸入法打上的話,一個標(biāo)點(diǎn)符號也是占用兩個字節(jié),這個字符串就是一共占用10*2=20個字節(jié)內(nèi)存。
那么怎樣判斷是否把字符串的數(shù)據(jù)都接收完成了呢?我們參考了宋老師的編程思想,使用定時計數(shù)器,也就是讓定時器0使用工作模式1計時,接收到第一個數(shù)據(jù)的時候我們先把TH0和TL0清0,然后打開定時器開始計時,當(dāng)接收到第二個數(shù)據(jù)的時候又把TH0和TL0清0讓他們從0開始再次計時,直到當(dāng)TH0大于等于200的時候證明時間過去了50ms左右(200*256*(12/11059200)=0.055秒),如果在這50ms里面都不再接收地到數(shù)據(jù),那么斷定已經(jīng)把字符串的數(shù)據(jù)都接收完成。
我們程序里定義的數(shù)組有關(guān)鍵字pdata,大家在《手把手教你學(xué)51單片機(jī)》文檔10.4節(jié)了解一下知識點(diǎn)即可。
2.main.c測試代碼
#include#include//詳見第六章第8講#include//詳見第十章第4講u8uart_i=0;u8pdataRXDBUF[64];voidCOUNT_TIMES(){TMOD//清0低四位TMOD|=0x01;//設(shè)置定時器0為工作模式1}voidmain(){u8key,x;KEY_Init();//初始化按鍵模塊EA=1;//閉合總中斷開關(guān)COUNT_TIMES();//初始化計數(shù)器ConfigUART(9600);while(1){key=KEY_Scan(0,500);if(key==4){printf_str("收到的內(nèi)容為:rn");printf_str(RXDBUF);//把接收到的字符串發(fā)送給電腦端for(x=0;x=200)//判斷是否把數(shù)據(jù)接收完畢{TR0=0;//關(guān)閉定時器,停止計時printf_str("rn接收完成!rn");RXDBUF[uart_i]=;//增加結(jié)束符,滿足了“printf_str(RXDBUF);”該發(fā)送多少數(shù)據(jù)就是多少uart_i=0;//uart_i歸0是為了下次接收新的字符串是從RXDBUF[0]開始存取數(shù)據(jù)TH0=0;//清零定時器的寄存器,下次再從0開始計時TL0=0;}}}voidInterruptUART()interrupt4{if(RI)//接收到字節(jié){RI=0;TH0=0;//每接收到一個字節(jié)數(shù)據(jù),就清0寄存器的值,定時時間又是從0開始計時,直到TH0大于等于200的時候,TL0=0;//時間超過50ms,也就是沒有再接收到數(shù)據(jù),因?yàn)榻邮盏綌?shù)據(jù)都會進(jìn)入“if(RI)”把TH0和TL0清0,TH0大于等于200,//超出了等待時間,證明后面沒有數(shù)據(jù)發(fā)送過來了TR0=1;//接收到第一個數(shù)據(jù)就打開定時器開始計時,后面接收到第二,第三個數(shù)據(jù)照樣打開定時器計時,直到在主函數(shù)里面被關(guān)閉為止RXDBUF[uart_i]=SBUF;//接收一個字節(jié)數(shù)據(jù)uart_i++;//RXDBUF從0號元素不停往下存取數(shù)據(jù)}}
3.實(shí)驗(yàn)現(xiàn)象
我們先把串口調(diào)試助手的設(shè)置選項選好打開串口之后,在輸入框打上“好好學(xué)習(xí),天天向上!”,點(diǎn)擊發(fā)送,可以看到如下界面我們在開發(fā)板上按下K4,把剛才接收到的字符串發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “血氧飽和度”知多少
- 水玻璃花盆行業(yè)深度研究報告
- 績效評價報告審核內(nèi)容
- 中國五星級酒店行業(yè)市場運(yùn)行態(tài)勢及投資戰(zhàn)略咨詢研究報告
- 配音簽約合同范本
- 2025年塑料制品項目可行性研究報告
- 露營采購麥德龍合同范本
- 知識產(chǎn)權(quán)保護(hù)意識在企業(yè)中的培養(yǎng)
- 42個微單倍型復(fù)合檢測體系的構(gòu)建及法醫(yī)學(xué)應(yīng)用
- 棗莊市山丘區(qū)中小河流洪水淹沒模擬及風(fēng)險分析
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護(hù)地分類分級
- 農(nóng)業(yè)托管合同范例
- 食品中阿維菌素等55種農(nóng)藥最大殘留限量
- 保潔部消殺培訓(xùn)
- 口服輪狀疫苗知識課件
- 中國腦小血管病診治指南2023版
- 中國聚乙烯催化劑行業(yè)發(fā)展?fàn)顩r及需求規(guī)模預(yù)測研究報告(2024-2030版)
- 新能源汽車驅(qū)動電機(jī)及控制系統(tǒng)檢修課件 學(xué)習(xí)情境4:電的轉(zhuǎn)換
- 車輛實(shí)際使用權(quán)協(xié)議書范文模板
- 新版加油站全員安全生產(chǎn)責(zé)任制
評論
0/150
提交評論