简介:
本文档总结自B站教程“博流智能BL618开发教程6——GPIO”,本节内容主要介绍如何使用BL618的GPIO,以GPIO32的LED和GPIO33的SW3开关为例。
视频链接:https://www.bilibili.com/video/BV1zs4y1T7tJ/?spm_id_from=333.999.0.0
创建项目:
将bouffalo_sdk_vmg0/examples/peripherals/gpio/
下的gpio_input_output
项目和gpio_interrupt
项目复制到bouffalo_sdk_vmg0/examples/vmg0/peripherals/gpio/
下。
引脚图:
当GPIO32输出0时,LED6点亮;当GPIO32输出1时,LED6熄灭。
当GPIO33读取到0时,代表SW3闭合;当GPIO33读取到1时,代表SW3断开;当GPIO33读取到下降沿,代表SW3按下的过程;当GPIO33读取到上升沿时,代表SW3松开的过程。(需要将GPIO33配置为内部上拉)
gpio_input_output项目
打开main.c
文件,定义引脚GPIO32为led,GPIO33为sw3,并按图示修改代码。
按图示修改Makefile文件:
编译、烧录后,打开串口调试助手,点击“打开串口”并按下BL618的“RST”键。
效果:每隔2秒切换led状态,读取并打印sw3是否按下。
gpio_interrupt项目
打开main.c
文件,定义引脚GPIO33为sw3,并按图示修改代码。
按图示修改Makefile文件:
编译、烧录后,打开串口调试助手,点击“打开串口”并按下BL618的“RST”键。
效果: 若sw3没有按下,则每隔2秒打印一次“helloworld”;若sw3按下并保持,则计数不断增加并打印计数。
将低电平触发改为下降沿触发,则按下一次sw3,计数一次。
编译、烧录后,打开串口调试助手,点击“打开串口”并按下BL618的“RST”键。
其中,按下一次sw3计数多次是因为按下和松开sw3时会出现按键抖动。(可以通过硬件滤波或软件防抖代码解决)
同理,将下降沿触发改为上升沿触发,则松开一次sw3,计数一次。
编译、烧录后,打开串口调试助手,点击“打开串口”并按下BL618的“RST”键。
其中,松开一次sw3计数多次的原因也是按键抖动。