Hello,最近在研究BL70x的KeyScan使用方法,发现没有相关的例程,能否说明如何使用KeyScan功能呢?谢谢!

    当前的使用方法是:

    1. 配置好GPIO的引脚功能,COL设为GPIO_FUN_KEY_SCAN_DRIVE,ROW设为GPIO_FUN_KEY_SCAN_IN
    2. 配置好QDEC的时钟(使用GLB_Set_QDEC_CLK函数),因为QDEC和KeyScan看起来共用一个时钟。
    3. 关闭KeyScan的Clock Gate(位于Slave1),也就是调用GLB_AHB_Slave1_Clock_Gate(DISABLE, BL_AHB_SLAVE1_KYS);
    4. 使用KYS_Init配置KeyScan,并且使用KYS_Enable打开,此时应该可以在COL引脚观察到脉冲输出。

    请问这里的使用方法有问题吗?

      顺便问下,最近在做Sipeed的键盘项目,希望申请一块BL706_IOT开发板(现在用的BL702引脚数量太少测试不方便),可以联系QQ:309670104,谢谢!

      Alvin 稍等,晚些时候再发上来。现在没有相关的例程可以参考吗?

        例程这边测试好以后会发出来

          Alvin 找到问题了,应该是因为使用了GPIO24-GPIO28这几个引脚,而当前使用的BL702是合封了Flash的版本,这些引脚默认的功能被配置为GPIO_FUN_FLASH_PSRAM,应该是被用作Flash引脚了。不使用这几个引脚的情况下,程序可以正常运行,可以观察到键盘扫描的波形。

            顺便问下,看到KeyScan有个ghost key detection的功能,这个功能的原理是什么,硬件上需要怎么设计呢?

              Alvin 今天试着把GPIO23-GPIO28相关的引脚的IO改成其它功能,发现有些IO(例如GPIO25)在修改后芯片就不能正常工作,可能和这些引脚是SF2_*相关引脚有关。这个怎么解决呢?

              metro 702如果想使用 23-28,需要在程序开始调用GLB_Select_Internal_Flash()

              Write a Reply...
              @ 2025 Bouffalo Lab (Nanjing) Co., Ltd. All rights reserved.