嗨,对话框新年快乐。我有一个简单但普通的问题。如何处理GPIO PIN或UART的外部中断?例如,如果我想在发生GPIO中断或UART中断时更改一个变量,是否有简单的软采样?我渴望你的帮助。当我阅读AN-B-026_DA14580外部唤醒机制_v1.0时,它有一定的意义,但没有特定的示例。
对于一个完全托管的解决方案,你可以在以下项目中看到代码:C:\ da1458x_sdk_name .0.6\dk_apps\keil_projects\proximity\reporter_fh。
Void app_button_press_cb(Void)是中断发生时的回调例程。
这个回调是在例程app_button_enable()中注册的:
另外,请注意,在app_button_enable例程中,我们为给定的GPIO启用中断
在本例中是:
#定义GPIO_BUTTON_PORT GPIO_PORT_1#定义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(唤醒中断前的事件数)意味着什么?事件数意味着什么?
嗨gwang,
该功能对事件进行计数(例如按下按键),并在按下一定数量的按键后唤醒设备。
最好的问候,
RvA(对话框)
嗨对话框:谢谢你的帮助。我有一个新问题。我使用一个IO(SPI_GPIO_PORT, SPI_DRDY_PIN)作为外部中断,当事件发生时激活LOW空白app_button_enable(空白){wkupct_register_callback (app_button_press_cb);如果(!GPIO_GetPinStatus(SPI_GPIO_PORT, SPI_DRDY_PIN))Wkupct_enable_irq (0x02, 0x02, 1,0);// P0_1,极性低,1事件,去噪时间= 0}
问题1:我应该使用哪一个来判断Pin的active LOW, !GPIO_GetPinStatus()还是GPIO_GetPinStatus()?
2.如何写void app_button_press_cb(void) ?当发生ext中断时,系统自动调用void app_button_press_cb(void) ?
你好,
1.如果您希望验证引脚低,您应该使用
如果(!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 (P00 . . P07),位8日至13日- >端口1 (P10 . . P15)……
我认为p1_1应该是0X20, P1_2应该是0X40
但是在SDK中,函数是:wkupct_enable_irq(0x200, 0x200, 1,10);空白app_button_enable(空白){wkupct_register_callback (app_button_press_cb);if (GPIO_GetPinStatus(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN))Wkupct_enable_irq (0x200, 0x200, 1,10);// P1_1,极性低,1事件,去噪时间= 0}
是我误会了吗?谢谢您的回复。
嗨过热,
如果您将该值设置为0x20,那么引脚P0_5将等待被触发,对于P1_2,应该设置0x400,如果0x40,那么P0_6将等待被触发。请查看文档UM-B-004。
0 ~ 7位:端口08 ~ 15位:端口116 ~ 23位:端口224 ~ 31位:端口3
由于MT_dialog
对于一个完全托管的解决方案,你可以在以下项目中看到代码:C:\ da1458x_sdk_name .0.6\dk_apps\keil_projects\proximity\reporter_fh。
Void app_button_press_cb(Void)是中断发生时的回调例程。
这个回调是在例程app_button_enable()中注册的:
另外,请注意,在app_button_enable例程中,我们为给定的GPIO启用中断
在本例中是:
#定义GPIO_BUTTON_PORT GPIO_PORT_1
#定义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(唤醒中断前的事件数)意味着什么?事件数意味着什么?
嗨gwang,
该功能对事件进行计数(例如按下按键),并在按下一定数量的按键后唤醒设备。
最好的问候,
RvA(对话框)
嗨对话框:
谢谢你的帮助。我有一个新问题。我使用一个IO(SPI_GPIO_PORT, SPI_DRDY_PIN)作为外部中断,当事件发生时激活LOW
空白app_button_enable(空白)
{
wkupct_register_callback (app_button_press_cb);
如果(!GPIO_GetPinStatus(SPI_GPIO_PORT, SPI_DRDY_PIN))
Wkupct_enable_irq (0x02, 0x02, 1,0);// P0_1,极性低,1事件,去噪时间= 0
}
问题1:我应该使用哪一个来判断Pin的active LOW, !GPIO_GetPinStatus()还是GPIO_GetPinStatus()?
2.如何写void app_button_press_cb(void) ?当发生ext中断时,系统自动调用void app_button_press_cb(void) ?
你好,
1.如果您希望验证引脚低,您应该使用
如果(!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 (P00 . . P07),位8日至13日- >端口1 (P10 . . P15)……
我认为p1_1应该是0X20, P1_2应该是0X40
但是在SDK中,函数是:wkupct_enable_irq(0x200, 0x200, 1,10);
空白app_button_enable(空白)
{
wkupct_register_callback (app_button_press_cb);
if (GPIO_GetPinStatus(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN))
Wkupct_enable_irq (0x200, 0x200, 1,10);// P1_1,极性低,1事件,去噪时间= 0
}
是我误会了吗?谢谢您的回复。
嗨过热,
如果您将该值设置为0x20,那么引脚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