3. 按键操作蜂鸣器¶
鲁班猫扩展板板载3个用户按键和1个蜂鸣器:
三个按键均使用XL9535扩展芯片上的扩展IO,分别是P0_3、P0_4、P0_5,野火在驱动层已经将这些IO设置为输入:
蜂鸣器也是使用XL9535扩展芯片上的扩展IO,分别是P0_6:
以鲁班猫1为例,执行如下命令打开配置文件,并开启XL9535设备树插件:
1 | sudo vi /boot/uEnv/uEnv.txt
|
重启板卡后,执行如下命令可以发现3个被注册为KEY的IO:
1 | sudo gpioinfo
|
执行如下命令查看按键对应的输入事件:
1 | ls /dev/input/by-path/ -l
|
如上图,keys对应/dev/input/event9,驱动层将3个按键事件都汇总到一个event事件中。
执行如下命令后,按下任意按键,查看按键的原始输入信息:
1 | sudo hexdump /dev/input/event9
|
可以执行如下命令手动测试蜂鸣器:
1 2 3 4 5 | #使能蜂鸣器
gpioset 6 6=1
#关闭蜂鸣器
gpioset 6 6=0
|
代码测试
本次代码测试应用了3个板载按键和蜂鸣器,任意按键按下,蜂鸣器工作,按键松开后,蜂鸣器停止工作。
python代码测试
python测试代码为:lubancat_rk_code_storage/expansion_board/key_buzzer/key_buzzer.py
将程序拷贝到板卡,执行如下命令运行程序:
1 2 | # 运行程序,其中输入参数 /dev/input/eventX 要按照实际情况填写
sudo python key_buzzer.py /dev/input/event9
|
c代码测试
c测试代码为:lubancat_rk_code_storage/expansion_board/key_buzzer/key_buzzer.c
将程序拷贝到板卡,执行如下命令编译、运行程序:
1 2 3 4 5 | # 编译程序
sudo gcc -o key_buzzer key_buzzer.c -lgpiod
# 运行程序,其中输入参数 /dev/input/eventX 要按照实际情况填写
sudo ./key_buzzer /dev/input/event9
|