跳转到主要内容

闪烁程序后出现GPIO中断问题

2个月前

闪烁程序后出现GPIO中断问题

发布的anith50分 5回复
0的问题

嗨,我已经开发了一个GPIO中断函数,当输入低时触发一个回调,并验证相同的调试会话与keil。当我flash编译bin/hex文件到SPI flash回调函数没有调用后,GPIO引脚低。上述程序在DA14531上完成开发套件- USB

2个月前

PM_Dialog

嗨anith,

谢谢你在网上提出的问题。你能分享更多关于你的项目的见解吗?

它是BLE还是非BLE的例子?你是否在使用任何一种可用的睡眠模式?您使用了哪个SDK示例?

谢谢,PM_Dialog

2个月前

anith 50分

你好,

它是BLE还是非BLE的例子?:-这是BLE的例子

你是否在使用任何一种可用的睡眠模式?:——ARCH_EXT_SLEEP_ON冬眠

您使用了哪个SDK示例?: - empty_peripheral_template例子

我还未定义DEVELOPMENT_DEBUG宏,并尝试了ADVERTISE_FOREVER,我尝试了GPIO 11, 6, 1作为USB开发板上的GPIO中断。

编辑:—如果我设置sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF回调函数工作。

2个月前

PM_Dialog

嗨anith,

谢谢你的建议。为了进行调试,应该定义DEVELOPMENT_DEBUG宏。

你提到你正在使用休眠模式,所以我假设你停止了广告并将设备置于休眠状态。

那么,你正在使用的按钮,是用来将设备从休眠中唤醒的吗?

当设备在广告时,你是否在使用延长睡眠模式?

谢谢,PM_Dialog

2个月前

anith 50分

我使用GPIO中断从传感器读取数据,当数据准备好时传感器提供一个低信号。我已经使用ARCH_EXT_SLEEP_ON作为默认睡眠模式。如果60秒内没有中央连接,我将停止广告并将设备进入休眠状态,如果中央连接,我将初始化传感器,等待数据就绪信号,然后通过I2C读取传感器的数据。数据准备信号将以1秒的时间间隔出现。我已经使用GPIO_EnableIRQ()函数来启用GPIO中断,并使用GPIO_RegisterCallback()来为相同的中断分配回调。一切工作良好的调试模式,但中断回调不会被调用,如果我flash程序。我是否需要为我的应用程序使用wkupct_enable_irq()和wkupct_register_callback() ?

2个月前

PM_Dialog

嗨anith,

我认为这与睡眠时间延长有关。如果你使用延长睡眠作为默认睡眠模式,设备会在广告或连接间隔期间进入睡眠。所以。请记住,在睡眠模式下,所有外围域都是关闭的。我的建议是在这个用例中使用WKUP控制器。关于WKUP控制器的更多细节,请参考SDK6.0.14的ble_app_sleepmode示例。

您还可以尝试禁用延长睡眠模式。

谢谢,PM_Dialog