ZigBee協議棧開發(二)
1、掌握ZigBee無線模組基本工作電路(官方):
在實際做東西的時候要加一些其他的東西,讓我們更好地應用這個基本電路。
復位電路:20腳如下接(1us低電平)
程式下載電路(五根線):
2、隨心所欲的控制io的輸入輸出
40腳,但晶片背面有額外的一個接地腳。
共有21個通用io口,分為三組,p0,p1,p2。其中P0\P1組各八個IO,P2只有五個。這些口都可以作為普通io口,有些口有片上外設的功能,其中P1_0、P1_1有20mA的輸出驅動能力,其餘只有4mA。
輸出配置:
(1)需要讓P1_0處於普通io口模式,非片上外設模式(P0SEL,P1SEL,PP2SEL暫存器決定)
(2)讓P1_0處於輸出狀態,非輸入狀態(P0DIR,P1DIR,P2DIR)P1DIR的第0位為1即可
P1DIR |= 0x01;強行置1第零位
(3)輸出高低電平(P1_0=1)
注:預設P1SEL都是0,有時作為普通io時不寫這個暫存器
輸入配置:
(1)需要讓P1_0處於普通io口模式,非片上外設模式(P0SEL,P1SEL,PP2SEL暫存器決定)P1SEL的第0位為0即可 P1SEL &=0xFE;強行清零第零位
(2)讓P1_0處於輸入狀態,非輸出狀態
(3)讓P1_0處於上拉,下拉,或三態中的一種狀態(PxINP
注:ADC採集時一定要用三態,預設暫存器都是零,所以預設io口為普通上拉輸入io口,需要根據實際需要更改。
程式碼編寫位置:在使用 io 之前都要先設定一下。任何地方。外部中斷初始化配置:
設定io口工作方式
開組中斷:P0組:P0IE=1,P1組:IEN2|=0x10,P2組:IEN2|=0x02;
開腳中斷:P0IEN|=0x01,P1IEN|=0x01,P2IEN|=0x01;某位設定為1代表開啟此位中斷
設定中斷方式(上升沿、下降沿):PICTL|=0x01
開總中斷:EA=1;
中斷函式的編寫:
固定格式:
#pragmavector=PxINT_VECTOR
__interrupt void fn()
{
If(PxIFG & 0x20)//中斷標誌與0010 0000相與
{//Px第五位發生中斷
中斷髮生處理函式;
}
PxIFG=0; // 中斷標誌清零
PxIF=0; //中斷標誌位清零
}
一般寫到需要中斷的相關函式下面。 ZigBee 裡一般寫到感測器檔案中。