概述
1、掌握ZigBee无线模块基本工作电路(官方):
在实际做东西的时候要加一些其他的东西,让我们更好地应用这个基本电路。
复位电路:20脚如下接(1us低电平)
程序下载电路(五根线):
2、随心所欲的控制io的输入输出
40脚,但芯片背面有额外的一个接地脚。
共有21个通用io口,分为三组,p0,p1,p2。其中P0P1组各八个IO,P2只有五个。这些口都可以作为普通io口,有些口有片上外设的功能,其中P1_0、P1_1有20mA的输出驱动能力,其余只有4mA。
输出配置:
(1)需要让P1_0处于普通io口模式,非片上外设模式(P0SEL,P1SEL,PP2SEL寄存器决定)P1SEL的第0位为0即可 P1SEL &=0xFE;强行清零第零位
(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寄存器决定)P1INP的第0位置1就可以把P1_0设置成三态。置0则是上下拉,P2INP高三位决定三组是上拉还是下拉,0表示上拉,1表示下拉。
注:ADC采集时一定要用三态,默认寄存器都是零,所以默认io口为普通上拉输入io口,需要根据实际需要更改。
代码编写位置:在使用 io 之前都要先设置一下。任何地方。外部中断初始化配置:
设置io口工作方式
开组中断:P0组:P0IE=1,P1组:IEN2|=0x10,P2组:IEN2|=0x02;
开脚中断:P0IEN|=0x01,P1IEN|=0x01,P2IEN|=0x01;某位设置为1代表开启此位中断
设置中断方式(上升沿、下降沿):PICTL|=0x01把P0组设置成下降沿触发,PICTL |=0x02把P1组前四位设置为下降沿触发,PICTL |=0x04把P1组后四位设置为下降沿触发,PICTL |=0x08把P2五位设置为下降沿触发。
开总中断:EA=1;
中断函数的编写:
固定格式:
#pragmavector=PxINT_VECTOR
__interrupt void fn()
{
If(PxIFG & 0x20)//中断标志与0010 0000相与
{//Px第五位发生中断
中断发生处理函数;
}
PxIFG=0; // 中断标志清零
PxIF=0; //中断标志位清零
}
一般写到需要中断的相关函数下面。 ZigBee 里一般写到传感器文件中。最后
以上就是细腻日记本为你收集整理的ZigBee协议栈开发(二)的全部内容,希望文章能够帮你解决ZigBee协议栈开发(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复