//时钟速度设置为32MHz
// 配置128分频,模比较计数工作模式,并开始启动 //设定timer1通道0比较模式 // 把50000的低8位写入T1CC0L // 把50000的高8位写入T1CC0H //清除timer1中断标志 //清除通道0中断标志 //不产生定时器1的溢出中断 //使能定时器1的中断 //使能全局中断 }
4、初始化IO口,要求LED1、LED3、SW1所对应的端口初始,并将LED1、LED3设置为输出口,将SW1设置为输入口,初始化后将LED1与LED3熄灭。 #include \引用CC2530头文件 #define LED1 //LED1端口宏定义 #define LED3 //LED3端口宏定义 #define SW1 //SW1端口宏定义 voidinit_IO(void) { }
5、采用ZigBee模块(带串口),利用T1定时控制4个LED,实现循环流水灯。
6、编写软件延时函数delay()。
7、编写UART0串口初始化代码,PC端串口接收数据的串口初始化。 void initUART0(void) {
//设置外设I/O口
//设置P0.2、P0.3、P0.3、P0.4位外设I/O口 //设置USART0工作模式为UART模式
//设置波特率为57600
//设置波特率为57600 //设置UART工作参数
//清零UART0 TX中断标志 //使能全局中断 }
8、LED1与P1_0相连,高电平有效,要求采用T3的中断方式控制LED1,使其每5s闪烁1次。
9、编写SampleApp_MessageMSGCB数据消息队列处理的回调函数, Z-Stack的API函数直接传参数即可。
#define HAL_LED_2 0x02
voidSampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) {
____________________________; //声明并初始化6个字节的缓冲区 switch ( pkt->clusterId ) {
case SAMPLEAPP_PERIODIC_CLUSTERID:
____________________________//将接收到的数据复制到缓冲区 //判断是不是NEWLab这6个字符 if()
{ //若是NEWLab这6个字符,使LED2闪烁
____________________________ } else
{ //若不是NEWLab这6个字符,则点亮LED2
____________________________ } break; default: break; } }