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

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

ID:47053513

大小:735.21 KB

頁數(shù):24頁

時間:2019-07-10

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

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

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

2、  朱兆祺ForARM  第六節(jié)獨立按鍵之查詢方式  在MT254xboard上有一個獨立按鍵KEY1,如圖,獨立按鍵和復位鍵在整個班子的左上角。按鍵通過P0.0口和CPU連接,在沒有按鍵時為高電平,按下后為低電平。下面我們通過LCD來顯示獨立按鍵的狀態(tài)?! ∑鋵脑韴D如下:  我們先用查詢的方式讀取按鍵的狀態(tà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的顯示?! ntmain(void)  {  uint8OldKeyValue=0;  uint8NewKeyValue=0;  SysStartXOSC();  LCD12864_Init();  LCD12864_DisStr(1,“KeyTest”);  //按鍵初始化  P0SEL&=~0X01;//設置為IO功能  P0DIR&=~0X01;//設置為輸入功能  while(1)  {  NewKeyVa

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

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

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

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

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

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

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

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

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

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

當前文檔最多預覽五頁,下載文檔查看全文

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

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