跳过主要内容

连接时关闭外设会导致系统崩溃

DA14580

5年前

发布的东方0点 4回复
0的问题

亲爱的对话框,
我尽量减少我的系统的力量,当手机连接到dialog14580,我不叫periph_init()直到数据传输祝福——> uart,我叫user_wakeup_hold_set()和数据传输开始,一段时间后,定时器回调将调用restore_sleep_mode,这里问题来当设备去睡觉,系统崩溃!!

空白user_wakeup_hold_set(空白)

If (wakeup_hold_timer_used == 0) / /唤醒时间

wakeup_hold_timer_used = app_easy_timer(USER_WAKEUP_HOLD_TIME, wakeup_hold_timer_cb_handler);

periph_init ();
arch_force_active_mode ();

Arch_printf("唤醒保持集");

其他的

wakeup_hold_timer_used = app_easy_timer_modify(wakeup_hold_timer_used, USER_WAKEUP_HOLD_TIME);
Arch_printf("唤醒保持重置\n");

静态孔隙wakeup_hold_timer_cb_handler(空白)

arch_restore_sleep_mode ();
wakeup_hold_timer_used = 0;
arch_printf("唤醒保持清晰\n");

我不知道该怎么做,请帮帮我,非常感谢!

5年前

东方 0点

更新:如果我不使用uart的rx,一切正常!

5年前

MT_dialog -30点

嗨,东方,

当系统唤醒时,从LP_Handler调用peripher_init,当崩溃时,您的代码会做什么?它击中NMI_Handler,硬故障还是重置?

由于MT_dialog

5年前

东方 0点

嗨,对话框的员工

我调用arch_force_active_mode()保持580唤醒和init uart到rx&tx数据,之后,我调用arch_restore_sleep_mode()释放580,以便它可以进入睡眠,代码这次崩溃。昨天我用uart2(之前是uart1)测试,一切顺利。

uart1和2有什么不同?

谢谢!

5年前

MT_dialog -30点

嗨,东方,

谢谢你的指示。

硬件模块是相同的,驱动程序实现有点不同,uart1代码位于ROM中,所以这可能会给你带来麻烦,很高兴它工作了。

由于MT_dialog