欢迎来到天天文库
浏览记录
ID:47053513
大小:735.21 KB
页数:24页
时间:2019-07-10
《由浅入深,蓝牙40BLE协议栈开发攻略大全(2)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本系列教程将结合TI推出的CC254xSoC系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第二部分: 第二部分知识点: 第六节独立按键之查询方式 第七节独立按键之中断方式 第八节CC254x内部温度传感器温度采集 第九节五向按键 第十节蜂鸣器 有关TI的CC254x芯片介绍,可点击下面链接查看: 主流蓝牙BLE控制芯片详解(1):TICC2540 同系列资料推荐: 由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1) 有关本文的工具下载,大家可以到以下这个地址:
2、 朱兆祺ForARM 第六节独立按键之查询方式 在MT254xboard上有一个独立按键KEY1,如图,独立按键和复位键在整个班子的左上角。按键通过P0.0口和CPU连接,在没有按键时为高电平,按下后为低电平。下面我们通过LCD来显示独立按键的状态。 其对应的原理图如下: 我们先用查询的方式读取按键的状态。因为按键接入在P0.0口,所以我们读取P0.0口的电平即可知道按键的状态。 uint8KeyValue(void)//读取按键状态 { if((P0&0X01)==0X00)//按下为低电平 { returnKEY_DOWN; }
3、else { returnKEY_UP; } } 这里我们在while循环中不断的读取按键状态,并且判断是否改变,如果改变则改变LCD的显示。 intmain(void) { uint8OldKeyValue=0; uint8NewKeyValue=0; SysStartXOSC(); LCD12864_Init(); LCD12864_DisStr(1,“KeyTest”); //按键初始化 P0SEL&=~0X01;//设置为IO功能 P0DIR&=~0X01;//设置为输入功能 while(1) { NewKeyVa
4、lue=KeyValue();//读取按键状态 if(OldKeyValue!=NewKeyValue)//按键状态改变 { OldKeyValue=NewKeyValue;//保存当前按键状态 if(OldKeyValue==KEY_DOWN) { LCD12864_DisStr(3,“KeyDown”); } else { LCD12864_DisStr(3,“KeyUp”); } } } return0; } 运行程序,效果如图所示: 第七节独立按键之中断方式 复制Key工程,重命名为KeyInterrupt。刚刚我
5、们用查询的方式读取按键的状态。但是这种方式在实际的工程中没有实际的应用价值,下面我们采用外部中断的方式来读取按键的状态,每当按键按下时就会触发一次外部中断。为了P0.0口能够触发中断,我们需要进行如下配置: P0IEN
6、=0X01;//P00设置为中断方式 PICTL&=~0X01;//下降沿触发 IEN1
7、=0X20;//允许P0口中断 P0IFG=0x00;//清除中断标志位 EA=1;//开总中断 然后就需要编写中断服务函数了。这里注意一点,在IAR中的中断函数有点特殊,格式为: #pragmavector=中断向量 __interru
8、pt函数 所以我们的中断函数为: #pragmavector=P0INT_VECTOR __interruptvoidP0_ISR(void) { if(0x01&P0IFG) { NewKeyValue=KEY_DOWN;//记录按键按下 } P0IFG=0;//清中断标志 P0IF=0;//清中断标志 } 在中断中我们记录按键按下,等待应用程序处理。而在主函数中我们需要处理按键按下事件,主函数中我们对按键计数并且通过LCD显示。 intmain(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;//下降沿触发 IEN1
12、=0X20;//允许P0口中断 P0IFG=0x00;//清除中断标志位 EA=1;//开总中断 sprintf(LCDBuf,“KeyCount:%d”,KeyCnt++);//按键计数 LCD12864_
13、DisStr(3,LCDBuf); while(1
此文档下载收益归作者所有