ZigBee入門(mén)-CC2530-實(shí)驗(yàn)(五)-串口通信控制LED代碼_第1頁(yè)
ZigBee入門(mén)-CC2530-實(shí)驗(yàn)(五)-串口通信控制LED代碼_第2頁(yè)
ZigBee入門(mén)-CC2530-實(shí)驗(yàn)(五)-串口通信控制LED代碼_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

ZigBee?門(mén)-CC2530-實(shí)驗(yàn)(五)-串?通信控制LED代碼:在我們學(xué)習(xí)任何?款單?機(jī)的時(shí)候,串?外設(shè)毫?疑問(wèn)是我們驗(yàn)證實(shí)驗(yàn),理解配置,學(xué)習(xí)單?機(jī)的最直觀體現(xiàn)。:在我們開(kāi)發(fā)實(shí)戰(zhàn)中,通過(guò)串?通信給下位機(jī)發(fā)送命令,然后去執(zhí)?命令這是很常見(jiàn)的操作。/******************************************************************實(shí)驗(yàn)說(shuō)明:*CC2530向上位機(jī)PC發(fā)送?個(gè)字符串,串?助?中顯?;*上位機(jī)PC向CC2530通過(guò)串?助?發(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;//開(kāi)串?0接收中斷EA=1;//開(kāi)總中斷}/*=================串?0接收中斷函數(shù)=================*/#pragmavector=URX0_VECTOR__interruptvoidURX0_ISR(){URX0IF=0;//清中斷標(biāo)志位RxBuf=U0DBUF;Rx_flag=1;//將緩沖寄存器的數(shù)據(jù)給讀出來(lái)//接收標(biāo)志位置1}/*================串?0發(fā)送?個(gè)字節(jié)函數(shù)==============*/voidUR0SendByte(unsignedcharByte){U0DBUF=Byte;while(!UTX0IF);UTX0IF=0;//將要發(fā)送的?個(gè)字節(jié)數(shù)據(jù)寫(xiě)?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)志位//通過(guò)上位機(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;}}}如果?家覺(jué)得實(shí)驗(yàn)中?些寄存器的配置不是很明?,?家就拿出咱們吃飯的家伙CC2530的數(shù)據(jù)?冊(cè)來(lái)把實(shí)驗(yàn)中出現(xiàn)的寄存器在?冊(cè)中查找,去理解,數(shù)據(jù)?冊(cè)?上多的是。啃?頭,要好好啃,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論