TI中文支持网
TI专业的中文技术问题搜集分享网站

调试过程中一直停在MAC_RADIO_TIMER_SLEEP();是什么原因?

协议栈版本:Z-Stack home 1.2.2

在使用IO中断唤醒,进行调试时,程序一直停在MAC_RADIO_TIMER_SLEEP();这个函数。

Alvin Chen:

你没有成功进入中断回调吗?看看你的32.768晶振正常吗?

Viki Shi:

你是用的是外部还是内部32k晶振?排查一下设置是否正确

user4796768:

回复 Viki Shi:

使用的是外部晶振。

Alvin Chen:

回复 user4796768:

你看一下你的晶振是否正常。

user4796768:

回复 Alvin Chen:

我看过了,晶振应该是没问题,调试查看TIMER2_RUN值时出现Error (col 1):Unknown or ambiguous symbol BV,不知道是什么情况?由于不能上传图片,没办法将调试的信息贴出来。

Alvin Chen:

回复 user4796768:

你有有修改那些程序,你直接烧录SampleSwitch的ZED 模式改一大一些poll rate 让他进入低功耗模式,看看能不能进入低功耗。

user4796768:

回复 Alvin Chen:

没有修改过其他的,调试时我在hal_sleep.c文件中在halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;设置断点,看到timeout值为0,应该可以进入低功耗模式的。

Alvin Chen:

回复 user4796768:

MAC_RADIO_TIMER_SLEEP 使用在MAC_INTERNAL_API uint8 macSleep(uint8 sleepState)
也就是一个内部调用关闭radio进入低功耗的模式,你不要打断点在这个函数里面,你直接去测一下功耗。你现在是按键中断无法唤醒吗?

user4796768:

回复 Alvin Chen:

uart口发数据通过RX(P0.2)中断可以唤醒,但是串口无法接收数据。

Alvin Chen:

回复 user4796768:

不建议你用UART. 你需要用一个其他的pin去唤醒否则UART无法正常工作。

赞(0)
未经允许不得转载:TI中文支持网 » 调试过程中一直停在MAC_RADIO_TIMER_SLEEP();是什么原因?
分享到: 更多 (0)