嗨对话框,
我正在使用peripherals_demo与UART-Device进行通信。现在我想在开发板(基本)上使用按钮K1(P1_6)作为GPIO-中断,在电路板上切换橙色LED(P1_5)。我认为hw_wkup_interrupt将是正确的。这种中断在所有模式下都在(活动,睡眠,延长睡眠)中吗?
我找不到有关如何实现ISR的任何文档,所以请你帮我吗?
如果我正确地,请将引脚配置和中断初始化插入Periph_setup()函数中。
void periph_setup(void)
{
......
//引脚配置
hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_6,hw_gpio_mode_input_pullup,hw_gpio_func_gpio);//按钮k1
hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_5,hw_gpio_mode_output,hw_gpio_func_gpio);// LED D2
//中断init.
hw_wkup_init(null);
hw_wkup_register_interrupt(wkup_isr,1);
hw_wkup_configure_pin(hw_gpio_port_1,hw_gpio_pin_6,true,hw_wkup_pin_state_low);
......
}
ISR应该在哪里实施?在第一步中,我只想激活和取消激活LED,以便我可以确保中断正在工作。
静态void wkup_isr(无效)
{
hw_wkup_reset_interrupt();
hw_gpio_set_active(hw_gpio_port_1,hw_gpio_pin_5);//开启LED以筛选功能
......
hw_gpio_set_inactive(hw_gpio_port_1,hw_gpio_pin_5);//关闭LED
}
谢谢!
嗨dx3gerst,
你是什么意思“应该实施ISR的地方”,其中文件?如果您愿意,您可以在main.c文件处具有代码实现。也不要将唤醒中断设置放在periph_init()(在每次唤醒中调用此函数才能在退出睡眠后设置引脚),您可以查看SDK中的HRP_Sensor示例,示例的位置periph_init()只有引脚的配置和唤醒中断的设置是在prvsetuphardware()函数中实现的,刚刚在调用periph_init()的pm_system_init()之后。
谢谢mt_dialog.
谢谢!