0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 > > 基于STM8SF103单片机的按键检测电路设计方案

基于STM8SF103单片机的按键检测电路设计方案

来源: elecfans
2021-08-19
类别:
eye 19
文章创建人 拍明

原标题:基于STM8单片机的按键检测电路设计方案

  硬件环境采用STM8SF103,电压为3.3V。

  电路需要注意的是STM8SF103这系列的IO作为输入口时只能是上拉输入和悬浮输入,虽然是弱上拉,在VCC为3.3V电压时,仍然能够被拉升至3.0V左右。

  所以按键检测电路IO口一端需要接地,而不是外接上拉。悬浮方式下IO仍然会有0.89V左右电压,读取对应的IO寄存器IDR,仍然处于逻辑高电平状态。

  软件代码相对很简单,只需要将IO口设置成上拉输入即可。采用轮询代码如下:

1.jpg

  //初始化只需要设置IO口模式即可。

  GPIO_Init(KEY2_PORT,KEY2_PIN,GPIO_MODE_IN_PU_NO_IT);//上拉输入,不产生中断

  //按键检测部分

  /*

  #defineKEY10

  #defineKEY1_PORT(GPIOD)

  #defineKEY1_PIN(GPIO_PIN_4)

  #defineKEY21

  #defineKEY2_PORT(GPIOC)

  #defineKEY2_PIN(GPIO_PIN_1)

  */

  u8CheckKey(u8key)

  {

  if(key==KEY1)

  {

  if(KEY1_PORT-》IDR&KEY1_PIN)//检测到有按键了,IO口电压会被拉低

  {

  delay_5ms();

  if(KEY1_PORT-》IDR&KEY1_PIN)//仍然存在低电平

  {

  while(!(KEY1_PORT-》IDR&KEY1_PIN));//等待放开

  returnKEY1;

  }

  }

  return0;

  }elseif(key==KEY2)

  {

  if(!(KEY2_PORT-》IDR&KEY2_PIN))//检测到有按键了

  {

  delay_5ms();

  if(!(KEY2_PORT-》IDR&KEY2_PIN))//仍然存在低电平

  {

  while(KEY2_PORT-》IDR&KEY2_PIN);//等待放开

  returnKEY2;

  }

  }

  return0;

  }

  return0;

  }

  总结:

  硬件电路将按键IO口的一端接地。

  软件配置不能使用悬浮输入方式,这种方式电压可能会不稳定。



责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案