亲爱的Dialog,
我试图降低我的系统的功耗,当手机连接到对话框14580时,我没有调用periph_init(),直到数据传输ble->uart,我调用用户_wakeup_hold_set()并开始数据传输,一段时间后,计时器回调将调用以恢复_sleep_模式,这里的问题是当设备进入睡眠时,系统崩溃
无效用户\唤醒\保持\设置(无效)
{
如果(唤醒\保持\定时器\使用==0)
{
wakeup_hold_timer_used=应用程序_easy_timer(用户_wakeup_hold_TIME,wakeup_hold_timer_cb_handler);
periph_init();
拱拱力激活模式();
arch_printf(“唤醒保持设置”);
}
其他的
{
wakeup_hold_timer_used=应用程序_easy_timer_modify(wakeup_hold_timer_used,用户_wakeup_hold_TIME);
arch_printf(“唤醒保持重置”);
}
}
静态无效唤醒\保持\计时器\ cb\处理程序(无效)
{
arch_restore_sleep_mode();
唤醒\保持\定时器\使用=0;
arch_printf(“唤醒保持清除”);
}
我不知道该怎么办,请帮帮我,非常感谢
设备:

更新:如果我不使用uart的rx,一切正常!
嗨,东方,
当系统唤醒时,从LP_处理程序调用periph_init,当崩溃时,您的代码做什么?它击中NMI_处理器,硬故障还是复位?
谢谢你的对话
嗨,对话职员
我调用arch_force_active_mode()来保持580唤醒,并初始化uart以接收和发送数据,之后,我调用arch_restore_sleep_mode()来释放580,以便它可以进入睡眠,这次代码崩溃。昨天我使用uart2(之前是uart1)进行测试,一切都很顺利。
uart1和2之间有什么不同?
谢谢
嗨,东方,
谢谢你的指点。
硬件模块相同,驱动程序实现有点不同,uart1代码位于ROM中,因此这可能会给您带来麻烦,很高兴它成功了.
谢谢你的对话