更新日期:2019-11-19
蜂鸣器控制例程
本例程主要功能为使用按键控制蜂鸣器,KEY1 按键通过中断的方式控制蜂鸣器鸣叫。
#include<rtthread.h>
#include<rtdevice.h>
#include"board.h"
#define DBG_TAG"main"
#define DBG_LVLDBG_LOG
#include<rtdbg.h>
voidbeep_ctrl(void *args)
{
    if(rt_pin_read(PIN_KEY1) == PIN_LOW)
    {
        rt_pin_write(PIN_BEEP, PIN_HIGH);
        LOG_D("KEY1 pressed. beepon");
    }
    else
    {
        rt_pin_write(PIN_BEEP, PIN_LOW);  
        LOG_D("beep off");        
    }
}
int main(void)
{
    /* 设置 KEY1 引脚为输入模式 */
    rt_pin_mode(PIN_KEY1, PIN_MODE_INPUT);
    /* KEY1 引脚绑定中断回调函数 */
    rt_pin_attach_irq(PIN_KEY1,PIN_IRQ_MODE_RISING_FALLING, beep_ctrl, RT_NULL);
    /* 使能中断 */
    rt_pin_irq_enable(PIN_KEY1,PIN_IRQ_ENABLE);
    /* 设置 BEEP 引脚为输出模式 */
    rt_pin_mode(PIN_BEEP, PIN_MODE_OUTPUT);
    /* 默认蜂鸣器不鸣叫 */
    rt_pin_write(PIN_BEEP, PIN_LOW);
    return 0;
}


请教一个问题:KEY0,KEY1可以实现点动使蜂鸣器发声。若改成按钮PIN_WK_UP(PA8),则按一下按钮蜂鸣器会一直响。与KEY0、KEY1现象不一致。烦请各位帮忙哪里还需要修改?