由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)

由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)

ID:47053513

大小:735.21 KB

頁數(shù):24頁

時間:2019-07-10

由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)_第1頁
由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)_第2頁
由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)_第3頁
由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)_第4頁
由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)_第5頁
資源描述:

《由淺入深,藍(lán)牙40BLE協(xié)議棧開發(fā)攻略大全(2)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、本系列教程將結(jié)合TI推出的CC254xSoC系列,講解從環(huán)境的搭建到藍(lán)牙4.0協(xié)議棧的開發(fā)來深入學(xué)習(xí)藍(lán)牙4.0的開發(fā)過程。教程共分為六部分,本文為第二部分:??????  第二部分知識點(diǎn):  第六節(jié)獨(dú)立按鍵之查詢方式  第七節(jié)獨(dú)立按鍵之中斷方式  第八節(jié)CC254x內(nèi)部溫度傳感器溫度采集  第九節(jié)五向按鍵  第十節(jié)蜂鳴器?  有關(guān)TI的CC254x芯片介紹,可點(diǎn)擊下面鏈接查看:  主流藍(lán)牙BLE控制芯片詳解(1):TICC2540?  同系列資料推薦:?  由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開發(fā)攻略大全(1)?  有關(guān)本文的工具下載,大家可以到以下這個地址:

2、  朱兆祺ForARM  第六節(jié)獨(dú)立按鍵之查詢方式  在MT254xboard上有一個獨(dú)立按鍵KEY1,如圖,獨(dú)立按鍵和復(fù)位鍵在整個班子的左上角。按鍵通過P0.0口和CPU連接,在沒有按鍵時為高電平,按下后為低電平。下面我們通過LCD來顯示獨(dú)立按鍵的狀態(tài)。  其對應(yīng)的原理圖如下:  我們先用查詢的方式讀取按鍵的狀態(tài)。因?yàn)榘存I接入在P0.0口,所以我們讀取P0.0口的電平即可知道按鍵的狀態(tài)?! int8KeyValue(void)//讀取按鍵狀態(tài)  {  if((P0&0X01)==0X00)//按下為低電平  {  returnKEY_DOWN;  }  

3、else  {  returnKEY_UP;  }  }  這里我們在while循環(huán)中不斷的讀取按鍵狀態(tài),并且判斷是否改變,如果改變則改變LCD的顯示。  intmain(void)  {  uint8OldKeyValue=0;  uint8NewKeyValue=0;  SysStartXOSC();  LCD12864_Init();  LCD12864_DisStr(1,“KeyTest”);  //按鍵初始化  P0SEL&=~0X01;//設(shè)置為IO功能  P0DIR&=~0X01;//設(shè)置為輸入功能  while(1)  {  NewKeyVa

4、lue=KeyValue();//讀取按鍵狀態(tài)  if(OldKeyValue!=NewKeyValue)//按鍵狀態(tài)改變  {  OldKeyValue=NewKeyValue;//保存當(dāng)前按鍵狀態(tài)  if(OldKeyValue==KEY_DOWN)  {  LCD12864_DisStr(3,“KeyDown”);  }  else  {  LCD12864_DisStr(3,“KeyUp”);  }  }  }  return0;  }  運(yùn)行程序,效果如圖所示:  第七節(jié)獨(dú)立按鍵之中斷方式  復(fù)制Key工程,重命名為KeyInterrupt。剛剛我

5、們用查詢的方式讀取按鍵的狀態(tài)。但是這種方式在實(shí)際的工程中沒有實(shí)際的應(yīng)用價值,下面我們采用外部中斷的方式來讀取按鍵的狀態(tài),每當(dāng)按鍵按下時就會觸發(fā)一次外部中斷。為了P0.0口能夠觸發(fā)中斷,我們需要進(jìn)行如下配置:  P0IEN

6、=0X01;//P00設(shè)置為中斷方式  PICTL&=~0X01;//下降沿觸發(fā)  IEN1

7、=0X20;//允許P0口中斷  P0IFG=0x00;//清除中斷標(biāo)志位  EA=1;//開總中斷  然后就需要編寫中斷服務(wù)函數(shù)了。這里注意一點(diǎn),在IAR中的中斷函數(shù)有點(diǎn)特殊,格式為:  #pragmavector=中斷向量  __interru

8、pt函數(shù)  所以我們的中斷函數(shù)為:  #pragmavector=P0INT_VECTOR  __interruptvoidP0_ISR(void)  {  if(0x01&P0IFG)  {  NewKeyValue=KEY_DOWN;//記錄按鍵按下  }  P0IFG=0;//清中斷標(biāo)志  P0IF=0;//清中斷標(biāo)志  }  在中斷中我們記錄按鍵按下,等待應(yīng)用程序處理。而在主函數(shù)中我們需要處理按鍵按下事件,主函數(shù)中我們對按鍵計數(shù)并且通過LCD顯示?! ntmain(void)  {  charLCDBuf[21]={0};//顯存  intKeyC

9、nt=0;  SysStartXOSC();  LCD12864_Init();  LCD12864_DisStr(1,“KeyTest”);  P0SEL&=~0X01;//設(shè)置為IO功能  P0DIR&=~0X01;//設(shè)置為輸入功能  P0IEN

10、=0X01;//P0.0設(shè)置為中斷方式  PICTL

11、=0X01;//下降沿觸發(fā)  IEN1

12、=0X20;//允許P0口中斷  P0IFG=0x00;//清除中斷標(biāo)志位  EA=1;//開總中斷  sprintf(LCDBuf,“KeyCount:%d”,KeyCnt++);//按鍵計數(shù)  LCD12864_

13、DisStr(3,LCDBuf);  while(1

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。