2640,关于调用Power_setConstraint(Power_SB_DISALLOW)的问题
现用到Multi工程实现主机数据透传,主从机正常连接后调用Power_setConstraint(Power_SB_DISALLOW);这个函数,主从机能正常实现串口数据双向透传。主机为降低功耗调用Power_releaseConstraint(Power_SB_DISALLOW);这个函数后重新连接从机后,再次调用Power_setConstraint(Power_SB_DISALLOW);这个函数,串口数据不能透传了,是怎么回事呢?谢谢!
你需要重新初始化串口。进入StandBy, 串口初始化是不保存的。看下面的文档,里面给了串口使用power manager的完整例子。
http://www.ti.com/lit/ug/sprui20/sprui20.pdf
重新初始化串口也不行,只要调用了Power_releaseConstraint(Power_SB_DISALLOW)这个函数后,除了软件复位,串口都不能用
照上面的文档改
看到文档的3.2,即使初始化也需要先调用Power_setDependency
/* Register power dependency - i.e. power up and enable clock for UART. */
Power_setDependency(hwAttrs->powerMngrId);
/* Initialize the UART hardware module */
UARTCC26XX_initHw(handle);
TY:
在调用Power_releaseConstraint(Power_SB_DISALLOW);这个函数之前,是想关掉UART,调用UARTCC26XX_close(Board_UART);这个函数,一直死在这个函数里了?
调用了UARTCC26XX_open(Board_UART,¶ms);这个函数也一样的,老问题。
Clock_setTimeout(Power_Module_State_clockObj(), ticks);
Clock_start(Power_Module_State_clockObj());
/* go to standby mode */
Power_sleep(Power_STANDBY, NULL, NOTIFY_LATENCY);
Clock_stop(Power_Module_State_clockObj());
这四个函数会报错?
Error[Pe167]: argument of type "int" is incompatible with parameter of type "ti_sysbios_knl_Clock_Handle"
从3.2开始参考。这四个clock的只是解释性的,不用写到代码里。
/* Register notification function */
Power_registerNotify(&object->uartPostObj, Power_AWAKE_STANDBY,
(Fxn)uartPostNotify, (uint32_t)handle, NULL ); 这个函数会死机,是怎么回事?