从今天开始我就得开始学习zigBee了,一直由于学校有两个创新项目需要我做,二是发现者现在无线传输还是比较有优势的,顺便学习一下,多掌握点技能毕竟不是坏处,学习zigbee的同时我也得继续研究学习Linux驱动,也会写一些相关的文章。下面是我自己的总结,不会给你一行一行的分析代码,我只是把我理解的东西写上来,也是一些重点,加上自己的总结。不喜欢的勿喷,请多多指教,第一天学习zigbee感觉上手还是挺快的,毕竟有51加上stm32的硬件基础。
#define LED1 P1_0 // P1.0口控制LED1
#define LED2 P1_1 // P1.1口控制LED2
#define LED3 P1_4 // P1.4口控制LED3
#define LED4 P0_2 // P0.2口控制LED4
#define LED5 P0_3 // P0.3口控制LED5
#define KEY1 P0_1 // P0.1口控制S1
#define KEY2 P2_0 // P2.0口控制S2
register configure :
PxSEL &= ~0x02; //0 通用IO功能,1复用功能 默认为通用的IO功能
PxDIR &= ~0x02; //0输入,1输出 default inuput
PxINP &= ~0x02; //0上拉、下拉,1三态
P0IEN |= 0x2; // P0.1 设置为中断方式 1:中断使能 (八位的)
PICTL |= 0x1; //P0,P1,和P2触发沿设置,1 下降沿触发 0上升沿触发
(PICTL第0位P0_0到P0_7,第1位P1_0到P1_3,第2位P1_4到P1_7,第3位P2_0到P2_4)
//IEN1 |= 0x20; //允许P0口中断;
IEN1 |= 0x20; //允许P0口中断; 是IEN1里面的第五位
IEN2 |= 0x10; //允许P1口中断; 是IEN2里面的第四位
IEN2 |= 0x02; //允许P2口中断; 是IEN2里面的第一位
P0IFG = 0x00; //初始化中断标志位
EA = 1; //打开总中断
#pragma vector = PxINT_VECTOR
__interrupt void P0_ISR(void)
{
DelayMS(10); //延时去抖
LED1 = ~LED1; //改变LED1状态
PxIFG = 0; //清某一IO口中断标志
PxIF = 0; //清cpu中断标志
}