嗨,对话新年快乐。我有一个简单但普通的问题。如何捆绑GPIO引脚或UART的外部中断?例如,如果我想在GPIO中断或UART中断发生时更改变量,那么有任何简单的软样本吗?我渴望你的帮助。当我读取AN-B-026_DA14580外部唤醒机制_v1.0时,它会有一种感觉,但没有特定的样本。
对于完全托管的拟议,您可以在以下项目中看到代码:C:\ da1458x_sdk_3.0.6 \ dk_apps \ keil_projects \ proximity \ eporter_fh。
void app_button_press_cb(void)是当中断发生时的回调例程。
此回调在例程App_button_enable()中注册:wkupct_register_callback(app_button_press_cb);
此外,请注意,在App_Button_Enable例程中,我们为给定GPIO启用中断
在这种情况下,它是:
#define gpio_button_port gpio_port_1.#define gpio_button_pin gpio_pin_1
当您使用不同的GPIO引脚作为中断源时,传递给WKUPCT_ENABLE_IRQ的参数需要相应地更改。
请参阅例程WKUPCT_ENABLE_IRQ的注释,以便为不同的GPIO引脚设置此值的说明。
谢谢!这个信息很有帮助!一个新问题:当我研究void wkupct_enable_irq(uint32_t sel_pins,uint32_t pol_pins,uint16_t events_num,uint16_t deb_time)。param events_num(唤醒前的事件数。)意味着什么?什么是事件的意思?
嗨光旺,
该函数对事件(例如按字母)进行计数,并在某种编程的按键次数后唤醒设备。
此致,
RVA(对话)
嗨对话框:感谢您的帮助。我在这里有一个新的问题。我使用单个IO(SPI_GPIO_PORT,SPI_DRDY_PIN)作为外部中断,发生事件时的高电平值void app_button_enable(void){wkupct_register_callback(app_button_press_cb);if(!gpio_getpinstatus(spi_gpio_port,spi_drdy_pin))wkupct_enable_irq(0x02,0x02,1,0);// p0_1,极性低,1个事件,脱嘴时间= 0}
问题1:我应该用哪一个来判断PIN的活跃低,!GPIO_GETPINSTATUS()或GPIO_GETPINSTATUS()?
2.如何编写VOID APP_BUTTON_PRESS_CB(void)?当EXT中断发生时,系统自动呼叫void app_button_press_cb(void)?
你好,
1.如果您希望验证PIN是否低于您应该使用
if(!gpio_getpinstatus(spi_gpio_port,spi_drdy_pin))
2.发生中断时,将自动调用调用呼叫函数。
你好对话框,我尝试过这个中断函数。
我读取了这个函数的定义:wkupct_enable_irq(uint32_t sel_pins,uint32_t pol_pins,uint16_t events_num,uint16_t deb_time)sel_pins选择已启用的输入。位0-7 - >端口0(p00..p07),位8-13 - >端口1(p10..p15),......
我认为p1_1应该是0x20; p1_2应该是0x40
但在SDK中,功能是:WKUPCT_ENABLE_IRQ(0x200,0x200,1,10);void app_button_enable(void){wkupct_register_callback(app_button_press_cb);if(gpio_getpinstatus(gpio_button_port,gpio_button_pin))wkupct_enable_irq(0x200,0x200,10);// p1_1,极性低,1个事件,脱嘴时间= 0}
所以我误会了吗?谢谢你的回复。
嗨过热,
如果将值设置为0x20,则PIN P0_5将等待触发,对于P1_2,应设置0x400,如果0x40则等待触发P0_6。请检查文档UM-B-004。
位0到7:端口0位8到15:端口1比特16到23:端口2比特24到31:港口3
谢谢mt_dialog.
对于完全托管的拟议,您可以在以下项目中看到代码:C:\ da1458x_sdk_3.0.6 \ dk_apps \ keil_projects \ proximity \ eporter_fh。
void app_button_press_cb(void)是当中断发生时的回调例程。
此回调在例程App_button_enable()中注册:wkupct_register_callback(app_button_press_cb);
此外,请注意,在App_Button_Enable例程中,我们为给定GPIO启用中断
在这种情况下,它是:
#define gpio_button_port gpio_port_1.
#define gpio_button_pin gpio_pin_1
当您使用不同的GPIO引脚作为中断源时,传递给WKUPCT_ENABLE_IRQ的参数需要相应地更改。
请参阅例程WKUPCT_ENABLE_IRQ的注释,以便为不同的GPIO引脚设置此值的说明。
谢谢!这个信息很有帮助!
一个新问题:当我研究void wkupct_enable_irq(uint32_t sel_pins,uint32_t pol_pins,uint16_t events_num,uint16_t deb_time)。
param events_num(唤醒前的事件数。)意味着什么?什么是事件的意思?
嗨光旺,
该函数对事件(例如按字母)进行计数,并在某种编程的按键次数后唤醒设备。
此致,
RVA(对话)
嗨对话框:
感谢您的帮助。我在这里有一个新的问题。我使用单个IO(SPI_GPIO_PORT,SPI_DRDY_PIN)作为外部中断,发生事件时的高电平值
void app_button_enable(void)
{
wkupct_register_callback(app_button_press_cb);
if(!gpio_getpinstatus(spi_gpio_port,spi_drdy_pin))
wkupct_enable_irq(0x02,0x02,1,0);// p0_1,极性低,1个事件,脱嘴时间= 0
}
问题1:我应该用哪一个来判断PIN的活跃低,!GPIO_GETPINSTATUS()或GPIO_GETPINSTATUS()?
2.如何编写VOID APP_BUTTON_PRESS_CB(void)?当EXT中断发生时,系统自动呼叫void app_button_press_cb(void)?
你好,
1.如果您希望验证PIN是否低于您应该使用
if(!gpio_getpinstatus(spi_gpio_port,spi_drdy_pin))
2.发生中断时,将自动调用调用呼叫函数。
你好对话框,
我尝试过这个中断函数。
我读取了这个函数的定义:wkupct_enable_irq(uint32_t sel_pins,uint32_t pol_pins,uint16_t events_num,uint16_t deb_time)
sel_pins选择已启用的输入。位0-7 - >端口0(p00..p07),位8-13 - >端口1(p10..p15),......
我认为p1_1应该是0x20; p1_2应该是0x40
但在SDK中,功能是:WKUPCT_ENABLE_IRQ(0x200,0x200,1,10);
void app_button_enable(void)
{
wkupct_register_callback(app_button_press_cb);
if(gpio_getpinstatus(gpio_button_port,gpio_button_pin))
wkupct_enable_irq(0x200,0x200,10);// p1_1,极性低,1个事件,脱嘴时间= 0
}
所以我误会了吗?谢谢你的回复。
嗨过热,
如果将值设置为0x20,则PIN P0_5将等待触发,对于P1_2,应设置0x400,如果0x40则等待触发P0_6。请检查文档UM-B-004。
位0到7:端口0
位8到15:端口1
比特16到23:端口2
比特24到31:港口3
谢谢mt_dialog.