【教程】小安派BW21-CBV-Kit——中断控制 LED

[复制链接]
查看41 | 回复2 | 2024-12-31 14:10:00 | 显示全部楼层 |阅读模式

用料

示例

在本示例中,我们使用按钮触发中断并控制 LED。请注意,在 Arduino 示例 "Button and LED"中,只有在按住按钮时 LED 才会亮起,而当我们松开按钮时,LED 会变暗。

打开示例,"文件" -> "示例" -> "AmebaGPIO" -> "Interrupt_Ctrl_LED"

由于[BW21-CBV-Kit] 没有内置按钮,您可以选择将黄色突出显示的代码更改为任何 GPIO 引脚编号。本例中使用的是 GPIO 引脚 0。

BW21-CBV-Kit 电路图:

编译并上传程序后,按下 BW21-CBV-Kit 上的复位按钮。LED 指示灯首先会亮起。按下并松开按钮,LED 指示灯会变暗。再次按下按钮,LED 亮起。

代码参考

在这个函数中:

setup()

我们将上例中的 GPIO 引脚设置为:

INPUT_IRQ_RISE

也就是说,当该引脚的电压从 GND 变为 3V3 时,就会发生中断。因此,我们将按钮的另一端连接到 3V3,以便在按下按钮时触发中断事件。

pinMode(button, INPUT_IRQ_RISE);

另一方面,我们可以将上例中的 GPIO 引脚设置为:

INPUT_IRQ_FALL

这意味着当该引脚的电压从 3V3 变为接地时会发生中断。在这种情况下,按钮的另一端连接到 GND。接下来,我们需要指定要执行的函数来处理中断:

digitalSetIrqHandler(button, button_handler);

第二个参数是一个函数指针,带有原型:

void button_handler(uint32_t id, uint32_t event)

在这个处理程序中,每次按下和松开按钮都会触发一个中断,并改变 LED 的状态。

用心做好保姆工作
回复

使用道具 举报

码录编 | 2024-12-31 14:37:22 | 显示全部楼层
回复

使用道具 举报

咱不能偷工减料呀
回复 支持 反对

使用道具 举报

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

本版积分规则