


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ZigBee?門-CC2530-實(shí)驗(yàn)(五)-串?通信控制LED代碼:在我們學(xué)習(xí)任何?款單?機(jī)的時(shí)候,串?外設(shè)毫?疑問是我們驗(yàn)證實(shí)驗(yàn),理解配置,學(xué)習(xí)單?機(jī)的最直觀體現(xiàn)。:在我們開發(fā)實(shí)戰(zhàn)中,通過串?通信給下位機(jī)發(fā)送命令,然后去執(zhí)?命令這是很常見的操作。/******************************************************************實(shí)驗(yàn)說明:*CC2530向上位機(jī)PC發(fā)送?個(gè)字符串,串?助?中顯?;*上位機(jī)PC向CC2530通過串?助?發(fā)送?個(gè)數(shù)據(jù)命令;*然后CC2530先接收,然后判斷并執(zhí)?相應(yīng)的命令;*****************************************************************/#include<ioCC2530.h>#defineuintunsignedint#defineucharunsignedchar#defineLED1P1_0#defineLED2P1_1//P1_0LED1定義為的控制引腳的控制引腳//P1_1LED2定義為voidInit_LED();//LED聲明初始化函數(shù)voidInit_Uart0();voidInit_Cfg_32M();//聲明串?0初始化函數(shù)//32M時(shí)鐘初始化函數(shù)聲明初始化voidUR0SendByte(unsignedcharByte);//聲明發(fā)送?個(gè)字節(jié)初始化函數(shù)voidUR0SendString(unsignedchar*str);//聲明發(fā)送字符串初始化函數(shù)voidExecute_CMD();//聲明執(zhí)?上位機(jī)命令初始化函數(shù)charRxBuf;//定義接收緩沖區(qū)//定義串?接收標(biāo)志位charRx_flag;/*====================主函數(shù)??====================*/voidmain(){Init_LED();Init_Uart0();Init_Cfg_32M();//LED端?0初始化//初始化串?//初始化32M晶振UR0SendString("HelloZigBee!\r\n");while(1){if(Rx_flag==1)//是否接收到上位機(jī)指令{Execute_CMD();}//判斷并執(zhí)?上位機(jī)指令}}/*===================LED初始化函數(shù)==================*/voidInit_LED(){P1SEL&=~0x03;P1DIR|=0x03;LED1=0;LED2=0;}//P1_0P1_1將和設(shè)置為通?I/O端?功能//P1_0P1_1將和的端?設(shè)置為輸出//LED1關(guān)閉燈//LED2關(guān)閉燈/*==================32M晶振初始化函數(shù)===============*/voidInit_Cfg_32M(){CLKCONCMD&=~0x40;//系統(tǒng)時(shí)鐘源選擇:外部32MHz。while(!(SLEEPSTA&0x40));//等待晶振穩(wěn)定CLKCONCMD&=~0x47;SLEEPCMD|=0x04;分頻//128CLKSPD不發(fā)分頻//關(guān)閉不?的RC振蕩器}/*==================串?0初始化函數(shù)=================*//*==================串?0初始化函數(shù)=================*/voidInit_Uart0(){PERCFG=0X00;P0SEL=0X0C;P2DIR&=~0XC0;//外設(shè)控制寄存器USART0的IO位置://P0_2,P_3設(shè)置為外設(shè)功能//P0?優(yōu)先為UART0,即串?0優(yōu)先級(jí)最?設(shè)置U0CSR|=0XC0;//設(shè)置為UART模式U0GCR|=10;//查表U0BAUD|=216;//設(shè)置波特率為57600U0UCR|=0x80;//?流控,8位數(shù)據(jù)位,清空緩沖區(qū)UTX0IF=0;URX0IF=0;//0TX發(fā)送中斷標(biāo)志位清0串?//0RX接收中斷標(biāo)志位清0串?URX0IE=1;//開串?0接收中斷EA=1;//開總中斷}/*=================串?0接收中斷函數(shù)=================*/#pragmavector=URX0_VECTOR__interruptvoidURX0_ISR(){URX0IF=0;//清中斷標(biāo)志位RxBuf=U0DBUF;Rx_flag=1;//將緩沖寄存器的數(shù)據(jù)給讀出來//接收標(biāo)志位置1}/*================串?0發(fā)送?個(gè)字節(jié)函數(shù)==============*/voidUR0SendByte(unsignedcharByte){U0DBUF=Byte;while(!UTX0IF);UTX0IF=0;//將要發(fā)送的?個(gè)字節(jié)數(shù)據(jù)寫?U0DBUF//TX中斷標(biāo)志,即數(shù)據(jù)發(fā)送完成//清除TX中斷標(biāo)志,準(zhǔn)備下?次發(fā)送等待}/*================串?0發(fā)送字符串函數(shù)================*/voidUR0SendString(unsignedchar*str){while(*str!='\0'){UR0SendByte(*str++);//逐個(gè)發(fā)送字符串中的字節(jié)}}/*================執(zhí)?上位機(jī)指令函數(shù)=================*/voidExecute_CMD(){Rx_flag=0;switch(RxBuf){//0清接收標(biāo)志位//通過上位機(jī)發(fā)送的命令,判斷并執(zhí)?case0xE1:LED1=1;如果//PC發(fā)送00xE1則點(diǎn)亮LED1并串?發(fā)送字符串UR0SendString("TheLED1isOpen!\r\n");break;case0xE2:LED1=0;如果//PC發(fā)送0xE2則熄滅LED1并串?發(fā)送字符串UR0SendString("TheLED1isClosed!\r\n");break;case0xF1:LED2=1;如果//PC發(fā)送0xF1則點(diǎn)亮LED2并串?發(fā)送字符串UR0SendString("TheLED2isOpen!\r\n");break;case0xF2:LED2=0;如果//PC發(fā)送0xF2則熄滅LED2并串?發(fā)送字符串UR0SendString("TheLED2isClosed!\r\n");break;}}}如果?家覺得實(shí)驗(yàn)中?些寄存器的配置不是很明?,?家就拿出咱們吃飯的家伙CC2530的數(shù)據(jù)?冊(cè)來把實(shí)驗(yàn)中出現(xiàn)的寄存器在?冊(cè)中查找,去理解,數(shù)據(jù)?冊(cè)?上多的是???頭,要好好啃,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識(shí)經(jīng)濟(jì)下的專業(yè)素養(yǎng)與職場禮節(jié)分析
- 廣告結(jié)賬合同范本
- 中介不給貸款合同范本
- 2025至2030年中國電纜專用索具數(shù)據(jù)監(jiān)測研究報(bào)告
- 采購廢紙合同范本
- 農(nóng)村房產(chǎn)合同范本
- 科技與時(shí)尚網(wǎng)紅醫(yī)美產(chǎn)品的市場前景
- 小學(xué)六年級(jí)教師年度工作總結(jié)范文四篇
- 社交媒體與電子商務(wù)的融合銷售增長的利器
- 租賃合同范本鋪面
- 2020光伏組件用接線盒 安全要求和試驗(yàn)IEC62790
- 獸藥GSP質(zhì)量管理制度匯編
- USB-3.1-TYPE-C-培訓(xùn)資料公開課獲獎(jiǎng)?wù)n件
- 《機(jī)械制圖(多學(xué)時(shí))》中職全套教學(xué)課件
- 2024-2025學(xué)年小學(xué)信息技術(shù)(信息科技)第二冊(cè)電子工業(yè)版(2022)教學(xué)設(shè)計(jì)合集
- 課堂教學(xué)質(zhì)量評(píng)價(jià)表
- 人工智能通識(shí)-課件全套 黃君羨 01-12 初識(shí)人工智能 -AIGC安全與倫理
- 婚姻家庭咨詢師服務(wù)流程手冊(cè)
- 浙江紹興市勘察測繪院下屬國有企業(yè)紹興市勘察測繪有限公司招聘筆試題庫2024
- 第1課《鄧稼先》課件語文七年級(jí)下冊(cè)2
- 2024-2030年中國納米纖維素技術(shù)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
評(píng)論
0/150
提交評(píng)論