




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)7 CC2530串口控制器編程本實(shí)驗(yàn)完成時(shí)間:第8周、第9周一、實(shí)驗(yàn)?zāi)康?、CC2530串口控制器的原理;2、掌握CC2530串口控制器的編程步驟;二、實(shí)驗(yàn)任務(wù) 從PC機(jī)上的串口調(diào)試助手(超級(jí)終端)輸入的字符能夠發(fā)送給CC2530,CC2530再把所接收到的字符“原路”回傳給對(duì)方。 直觀的效果:當(dāng)串口調(diào)試助手(超級(jí)終端)激活時(shí),鍵盤上輸入的字符能夠在串口調(diào)試助手的窗口那個(gè)回顯。三、實(shí)驗(yàn)原理 1、何謂超級(jí)終端和串口調(diào)試助手 超級(jí)終端:一個(gè)和uart串口相關(guān)聯(lián)的窗口應(yīng)用程序。它能夠從uart串口上所接收到的字符顯示出來,同時(shí)當(dāng)該窗口激活時(shí)能夠把鍵盤所鍵入的字符從串口發(fā)送出去。超級(jí)終端能夠從串口收發(fā)字符成功的前提是串口通信雙方所約定的收發(fā)格式一致。它和一般所說的串口調(diào)試助手類似,但有區(qū)別:超級(jí)終端不會(huì)以16進(jìn)制的形式顯示所接收的字符編碼;串口調(diào)試助手不會(huì)把鍵盤輸入的字符實(shí)時(shí)從串口發(fā)送出去,需要點(diǎn)擊手動(dòng)發(fā)送。串口調(diào)試助手:桌面上有串口聊天助手,如果不能打開,可以如圖1在S503的D盤/試驗(yàn)箱資料光盤/工具軟件/串口工具和驅(qū)動(dòng)/串口聊天助手,打開后如圖2所示。打開任意一個(gè)即可!圖1 串口聊天助手位置設(shè)置參數(shù)圖2 串口聊天助手界面圖2、實(shí)驗(yàn)室GEC-CC2530開發(fā)板的uart串口接口(USB轉(zhuǎn)串口,紅色圈圈)如圖3:圖3 單片機(jī)開發(fā)板的USB轉(zhuǎn)串口該接口和cc2530所連接的電路圖如下:由該圖不難得知:P0_3作為串口的發(fā)送管腳;P0_2作為串口的接收管腳;P0_5、P0_4作為硬件流控用的,一定要注意,我們平時(shí)見到的串口的交叉線都只用到了收、發(fā)、地三根線,所以在串口設(shè)置是都禁止硬件流控!由此可見,GEC-CC2530所占的資源就是P0_3(發(fā)送管腳)、P0_2(接收管腳),更進(jìn)一步結(jié)合CC230數(shù)據(jù)手冊(cè)的GPIO設(shè)備管腳映射表分析:可知:GEC-CC2530串口 P0_3(發(fā)送管腳)、P0_2(接收管腳)uart 03、cc2530串口uart編程步驟(1)總線初始化,相關(guān)SFR如下PERCFG P2DIR PxSEL UxCSR我們uart0位于P0位置當(dāng)P0口管腳沖突是uart0優(yōu)先當(dāng)P0_2 P0_3作為了uart0的收發(fā)管腳2、數(shù)據(jù)鏈路格式化(數(shù)據(jù)位、停止位、校驗(yàn)位、波特率);UxUCR UxGCR UxBAUD波特率的計(jì)算:在CC2530的時(shí)鐘位高速時(shí)鐘位32M時(shí),我們可以按照下表進(jìn)行配置:3、讀寫串口收發(fā)寄存器 UxDBUF 、RX_BYTE(UxCSR的第2位) 、TX_BYTE(UxCSR的第1位) RX_BYTE:接收字節(jié)狀態(tài),0:沒有收到字節(jié);1:準(zhǔn)備好接收字節(jié)TX_BYTE:傳送字節(jié)狀態(tài),0:字節(jié)沒有被傳送;1:字節(jié)準(zhǔn)備被傳送我們讀取數(shù)據(jù)時(shí),RX_BYTE置1,然后讀UxDBuf;我們發(fā)送數(shù)據(jù)時(shí),TX_BYTE置1,且將準(zhǔn)備傳送的字節(jié)寫入到UxDBUF;四、實(shí)驗(yàn)步驟1、領(lǐng)取單片機(jī)開發(fā)板,編寫代碼,先編譯下載,如圖4下載時(shí)需要接下載器,下載好之后,斷開下載器和方口線,再將方口線直接接在單片機(jī)開發(fā)板的USB轉(zhuǎn)串口上如圖5,如果電源指示燈不亮,則將RST旁邊的撥碼開關(guān)打到OFF位置。撥碼開關(guān) 圖4 連接下載器 圖5 和PC機(jī)進(jìn)行串口通信如圖5連接好之后,打開設(shè)備管理器,通過設(shè)備管理器中查看COM 口,查找自己是COM幾。一般方口線直接相連后,靜待20S就會(huì)出現(xiàn)設(shè)備。若直接將方口線接在單片機(jī)上,打開設(shè)備管理器發(fā)現(xiàn)出現(xiàn)如下圖6的?,則需要右鍵點(diǎn)擊問號(hào)更新安裝USB轉(zhuǎn)串口的驅(qū)動(dòng)。此驅(qū)動(dòng)需要下載:ftp/教學(xué)軟件/粵嵌zigbee USB轉(zhuǎn)串口/,解壓至當(dāng)前文件夾下,右鍵更新驅(qū)動(dòng)路徑為選擇剛剛解壓的文件:CH341SER。更新安裝驅(qū)動(dòng)之后,出現(xiàn)如圖7所示,比剛才多了一個(gè)COM3,則我們現(xiàn)在就是COM3口。在串口助手上選擇COM3口。若不清楚自己剛才連上的是COM幾,斷開方口線,再重新連接方口線。打開串口調(diào)試助手,設(shè)置好COM口,和波特率即可; 圖6 沒有識(shí)別出USB轉(zhuǎn)串口 圖7 安裝驅(qū)動(dòng)后 編程實(shí)現(xiàn):使用cc2530的串口0來和PC機(jī)通信,通信格式為:8位數(shù)據(jù)位、1位停止位、沒有奇偶校驗(yàn)位、沒有流控、波特率為115200;(1)程序?qū)崿F(xiàn)在串口調(diào)試助手上每隔0.5秒顯示HELLO WORD?。?)程序?qū)崿F(xiàn)在串口調(diào)試助手上把鍵盤輸入的字符回顯出來2、 建立IAR工程,完善以下代碼以實(shí)現(xiàn)實(shí)驗(yàn)任務(wù):程序?qū)崿F(xiàn)在串口調(diào)試助手上大約每隔0.5秒顯示HELLO WORD!可參考課本P110,但不與課本上完全相同第一題:#include #define uint unsigned int#define uchar unsigned charvoid delay(uint);char Txdata= HELLO WORD! ;void set_clock_speed()/時(shí)鐘初始化/下面的代碼是把系統(tǒng)的高速時(shí)鐘設(shè)置為32M,請(qǐng)對(duì)為下三條句添加注釋 CLKCONCMD&=(16);/ while(CLKCONSTA&(16);/ CLKCONCMD&=0X07;/void delay(unsigned int count)/延時(shí)函數(shù) unsigned int i,j; for(i=0;icount;i+) for(j=0;j10000;j+) ; void uart0_init()/串口初始化:可參考課本P110,但不與課本上完全相同/補(bǔ)充代碼實(shí)現(xiàn)初始化:USART0選擇uart模式,管腳為P0(位置1),數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、沒有校驗(yàn)位,波特率為115200,LSB發(fā)送模式,1為停止,0為起始 void main() set_clock_speed();/時(shí)鐘初始化 uart0_init();/串口初始化 while(1) int j; for(j = 0; Txdataj!=0; j+)/下面三句實(shí)現(xiàn)串口發(fā)送,補(bǔ)充下面代碼 U0DBUF = Txdataj; / 填充數(shù)據(jù)到串口數(shù)據(jù)寄存器 /通過測(cè)試TX_BYTE標(biāo)志位是否為1等待字節(jié)發(fā)送完畢: / 將TX_BYTE標(biāo)志位清零 /延時(shí) 3、 編譯鏈接程序后下載到cc2530板子上,驗(yàn)證是否完成了顯示任務(wù),修改代碼中的HELLO WORD!為HELLO WORD!r,編譯、下載,觀察運(yùn)行結(jié)果;再修改成HELLO WORD!rn觀察運(yùn)行結(jié)果; 方法: U0DBUF = Txdataj; while(UTX0IF = 0); UTX0IF = 0; 溫馨提示:上述代碼中實(shí)現(xiàn)串口發(fā)送的3句代碼可以換成以下方法,請(qǐng)測(cè)試并在課后多多思考: 以下內(nèi)容為第9周實(shí)驗(yàn)內(nèi)容:4、 建立IAR工程,程序?qū)崿F(xiàn)在串口調(diào)試助手上把鍵盤輸入的字符回顯出來,完善以下代碼以實(shí)現(xiàn)實(shí)驗(yàn)任務(wù)第二題:#include void set_clock_speed()/下面的代碼是把系統(tǒng)的高速時(shí)鐘設(shè)置為32M,請(qǐng)大家通過查看手冊(cè)嘗試自己來寫,不要抄襲 void uart0_init()/USART0選擇uart模式,管腳為P0,數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、沒有校驗(yàn)位 /波特率為19200,LSB發(fā)送模式,1為停止,0為起始 /將串口0的位置選在P0口:PERCFG的第0位清0 /P0口的外設(shè)優(yōu)先級(jí)控制設(shè)為串口0優(yōu)先:P2DIR7:6清0 /P0口的2、3管腳設(shè)為外設(shè)工作方式 /USART0工作的UART模式,接收使能 /據(jù)格式為8位數(shù)據(jù)位、1位停止位、沒有校驗(yàn)位 /波特率baud_e的選擇 /波特率設(shè)置 void uart0_send_byte(char tmp)/將字節(jié)tmp從串口0發(fā)送出去char uart0_receive_byte(void)/從串口0接收一個(gè)字節(jié)void main()/補(bǔ)充完整 char buf; set_clock_speed(); uart0_init(); while(1) buf=/從串口0接收一個(gè)字符到buf; /把接收到的字符又給串口0發(fā)送回去 5、 編譯鏈接程序后下載到cc2530板子上,驗(yàn)證是否完成了任務(wù);五、拓展實(shí)驗(yàn)1.在上面的例子中我們定義了uart0_send_byte函數(shù)可以向串口發(fā)送一個(gè)字符,當(dāng)然在此基礎(chǔ)上我們可以實(shí)現(xiàn)如何向串口發(fā)送一個(gè)字符串的函數(shù)。我們是否可以用c語言的標(biāo)準(zhǔn)IO函數(shù)printf呢?printf的強(qiáng)大的格式控制還是能夠給我?guī)砗艽蟮姆奖愕?。printf最終會(huì)導(dǎo)致putchar的調(diào)用,所以我們只需要把putchar的輸出定向到串口就可以了。由于printf的運(yùn)行消耗內(nèi)存較多,我們需要工程的缺省存儲(chǔ)模型做如下設(shè)置:在工程中添加如下代碼:#include _near_func int putchar(int c) uart0_send_byte(c); return c;然后你就可以在代碼中用printf輸出了!2.上述串口通信完成的同學(xué),可以嘗試2位同學(xué)合作,A同學(xué)使用一臺(tái)電腦+單片機(jī)大板+下載線(不連接串口線),B同學(xué)使用一臺(tái)電腦+單片機(jī)大板+下載線(不連接串口線),將兩塊板子上的地線通過杜邦線相連,將A的TXD連接B的RXD,A同學(xué)給自己?jiǎn)纹瑱C(jī)寫發(fā)送數(shù)據(jù)0X55,B同學(xué)給自己?jiǎn)纹瑱C(jī)寫接收代碼,兩人波特率一致,當(dāng)B 同學(xué)收到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 婚慶策劃勞動(dòng)合同范本2篇
- 尾氣治理刻不容緩
- 員工消防安全職責(zé)3篇
- 代駕委托書在線填寫3篇
- 代銷授權(quán)委托書樣本模板3篇
- 代收款項(xiàng)委托書3篇
- 倉儲(chǔ)物流倉儲(chǔ)物流坡道安全協(xié)議3篇
- 如何寫債權(quán)債務(wù)轉(zhuǎn)讓協(xié)議3篇
- 2025社團(tuán)活動(dòng)心得感悟(17篇)
- 畢業(yè)生實(shí)習(xí)自我總結(jié)600字(15篇)
- 工藝聯(lián)鎖圖識(shí)讀
- 2013-2022全國(guó)高考真題物理匯編:練習(xí)使用多用電表
- 2023年中南大學(xué)湘雅二醫(yī)院康復(fù)醫(yī)學(xué)與技術(shù)崗位招聘考試歷年高頻考點(diǎn)試題含答案解析
- GB/T 21567-2008危險(xiǎn)品爆炸品撞擊感度試驗(yàn)方法
- 《綠色建筑概論》整套教學(xué)課件
- 衛(wèi)生人才培養(yǎng)方案計(jì)劃
- DB64-T 1684-2020 智慧工地建設(shè)技術(shù)標(biāo)準(zhǔn)-(高清可復(fù)制)
- 婚喪嫁娶事宜備案表
- “三級(jí)”安全安全教育記錄卡
- 風(fēng)生水起博主的投資周記
- 賽艇賽事活動(dòng)推廣方案
評(píng)論
0/150
提交評(píng)論