硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2993|回复: 4
收起左侧

[有问必答] 关于按键key驱动

[复制链接]

11

主题

8

回帖

41

积分

新手上路

积分
41
发表于 2018-7-6 17:40:39 | 显示全部楼层 |阅读模式
将ke.c和.h代码移植F1系列板子上,为什么bsp_GetKey()函数返回值,总是0了,
  1. int main(void)
  2. {       
  3.         uint8_t ucKeyCode;       

  4.         /* ´®¿Ú³õʼ»¯ */
  5.         USART_Config();
  6.        
  7.         bsp_InitKey();
  8.        
  9.         /* Ö÷³ÌÐò´óÑ­»· */
  10.         while (1)
  11.         {
  12.                                        
  13.                 /* ´¦Àí°´¼üʼþ */
  14.                 ucKeyCode = bsp_GetKey();
  15.         printf("ucKeyCode=%d\r\n",ucKeyCode);       
  16.                 if (ucKeyCode>0)
  17.                 {
  18.                         /* Óмü°´Ï */
  19.                         switch (ucKeyCode)
  20.                         {
  21.                                 case KEY_DOWN_K1:                /* °´¼üÌáʾÒô */
  22.                                
  23.                                         break;               
  24.                                
  25.                                 case KEY_DOWN_K2:                /* ¼±´ÙÃù½Ð10´Î*/
  26.                                         printf("K2¼ü - ¼±´ÙÃù½Ð10´Î\r\n");                               
  27.                                         break;       

  28.                                 case KEY_DOWN_K3:                /* ³¤Ãù3´Î*/
  29.                                         printf("K3¼ü - ³¤Ãù3´Î\r\n");
  30.                                         break;       
  31.                                
  32. //                                case JOY_DOWN_L:
  33. //                                        if (freq > 100)
  34. //                                        {
  35. //                                                freq -= 100;
  36. //                                        }
  37. //                                        printf("·äÃùÆ÷ƵÂÊ = %dHz\r\n", freq);
  38. //                                        break;

  39. //                                case JOY_DOWN_R:
  40. //                                        freq += 100;
  41. //                                        printf("·äÃùÆ÷ƵÂÊ = %dHz\r\n", freq);
  42. //                                        break;
  43.                                        
  44.                                 default:
  45.                                         break;
  46.                         }
  47.                 }
  48.         }


  49. }
复制代码


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-6 18:01:36 | 显示全部楼层
方便的话,把你移植后的h文件和C文件,我看看。另外按键部分原理图也截个图上来。
回复

使用道具 举报

82

主题

401

回帖

667

积分

金牌会员

积分
667
QQ
发表于 2018-7-7 20:29:27 | 显示全部楼层
while(1)
  {
    /*按键扫描*/
    bsp_KeyScan();
    /* 按键滤波和检测由后台systick中断服务程序实现,我们只需要调用bsp_GetKey读取键值即可。 */
    ucKeyCode = bsp_GetKey();        /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
    if (ucKeyCode != KEY_NONE)
    {
      switch (ucKeyCode)
      {
      case KEY_LONG_K1:                        /* K1长按 恢复出厂设置  复位 */

        break;

      case KEY_DOWN_K1:                        /* K1长按 恢复出厂设置  复位 */

        break;
      default:
        /* 其它的键值不处理 */
        break;
      }
    }
  }


有没有在程序中添加按键扫描函数
    /*按键扫描*/
    bsp_KeyScan();
武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

11

主题

8

回帖

41

积分

新手上路

积分
41
 楼主| 发表于 2018-7-9 00:46:04 | 显示全部楼层
systick中断服务是如何实现的??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-9 02:19:53 | 显示全部楼层
几迟 发表于 2018-7-9 00:46
systick中断服务是如何实现的??

1.png
QQ截图20180709021904.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 01:26 , Processed in 0.189084 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表