由浅入深,蓝牙4.0BLE协议栈开发攻略大全(2)

由浅入深,蓝牙4.0BLE协议栈开发攻略大全(2),第1张

  

  本系列教程将结合TI推出的CC254x SoC 系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第二部分:
      

  第二部分知识点:

  第六节 独立按键之查询方式

  第七节 独立按键之中断方式

  第八节 CC254x内部温度传感器温度采集

  第九节 五向按键

  第十节 蜂鸣器
 

  有关TI 的CC254x芯片介绍,可点击下面链接查看:

  主流蓝牙BLE控制芯片详解(1):TI CC2540
 

  同系列资料推荐:
 

  由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)
 

  有关本文的工具下载,大家可以到以下这个地址:

  朱兆祺ForARM

  第六节 独立按键之查询方式

  在MT254xboard上有一个独立按键KEY1,如图 ,独立按键和复位键在整个班子的左上角。按键通过P0.0口和CPU连接,在没有按键时为高电平,按下后为低电平。下面我们通过LCD来显示独立按键的状态。

由浅入深,蓝牙4.0BLE协议栈开发攻略大全(2),通过LCD来显示独立按键的状态,第2张

  其对应的原理图如下:

由浅入深,蓝牙4.0BLE协议栈开发攻略大全(2),独立按键之查询方式,第3张

  我们先用查询的方式读取按键的状态。因为按键接入在P0.0口,所以我们读取P0.0口的电平即可知道按键的状态。

  uint8 KeyValue(void) // 读取按键状态

  {

  if((P0&0X01) == 0X00 ) // 按下为低电平

  {

  return KEY_DOWN;

  }

  else

  {

  return KEY_UP;

  }

  }

  这里我们在while循环中不断的读取按键状态,并且判断是否改变,如果改变则改变LCD的显示。

  int main(void)

  {

  uint8 OldKeyValue = 0;

  uint8 NewKeyValue = 0;

  SysStartXOSC();

  LCD12864_Init();

  LCD12864_DisStr(1, “ Key Test”);

  // 按键初始化

  P0SEL &= ~0X01; // 设置为 IO功能

  P0DIR &= ~0X01; // 设置为输入功能

  while(1)

  {

  NewKeyValue = KeyValue(); // 读取按键状态

  if(OldKeyValue != NewKeyValue) // 按键状态改变

  {

  OldKeyValue = NewKeyValue; // 保存当前按键状态

  if(OldKeyValue == KEY_DOWN)

  {

  LCD12864_DisStr(3, “ Key Down ”);

  }

  else

  {

  LCD12864_DisStr(3, “ Key Up ”);

  }

  }

  }

  return 0;

  }

  运行程序,效果如图所示:

由浅入深,蓝牙4.0BLE协议栈开发攻略大全(2),复制代码,第4张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2686720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-15
下一篇 2022-08-15

发表评论

登录后才能评论

评论列表(0条)

保存