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

2530睡眠后如何处理串口数据

2530工作于低功耗模式

1.协调器给他发送一条指令,收到后串口打印出来,在2530睡眠的时候这个是可以实现的吧?

2.2530把从串口收到的数据发给协调器,2530在睡眠的时候,怎么知道串口来数据了?如果需要唤醒,怎么唤醒?

Alvin Chen:

睡眠状态无法接收,你要做的是发送前先唤醒。

需要用IO 中断去唤醒。

Viki Shi:

1、睡眠时无法进行串口操作,需唤醒再操作
2、PM2可以通过睡眠定时器和中断唤醒,PM3只能通过外部中断唤醒

YiKai Chen:

1. 如果cc2530終端有做polling,.协调器给他发送一条指令,收到后串口打印出来,这个是可以实现
2. 需要透過額外的GPIO唤醒

user5367314:

回复 YiKai Chen:

是这样,协调器先给终端发送一条指令,终端收到以后,此后的几秒钟内,终端才会收到串口数据,
协调器没给终端发送指令的时候,终端是不会有串口数据进来的,
如果要实现终端收到指令后,此时唤醒终端几秒钟,然后收到串口数据后再睡眠,
请问这个怎么实现?具体的睡眠和唤醒的代码是?

YiKai Chen:

回复 user5367314:

可以調用osal_pwrmgr_device( PWRMGR_ALWAYS_ON);讓終端維持唤醒狀態,等到要睡眠了再調用osal_pwrmgr_device( PWRMGR_BATTERY );

user5367314:

回复 YiKai Chen:

另外请问睡眠模式下,Hal_ProcessPoll函数的调用频率是多少?一直POLL还是每多久POLL一次?

YiKai Chen:

回复 user5367314:

看你POLL_RATE設置多久就是多久POLL一次

user5367314:

回复 YiKai Chen:

这个POLL_RATE是在哪里设置的?默认的是多久?

YiKai Chen:

回复 user5367314:

POLL_RATE是在f8wconfig.cfg设置的,默认的是1000 ms

user5367314:

回复 YiKai Chen:

你好,我说的是下面代码里的Hal_ProcessPoll,
如果里面的Hal_ProcessPoll是每秒一次,那osal_run_system也是每秒运行一次?
void osal_run_system( void )
{uint8 idx = 0;

#ifdef USE_ICALLuint32 next_timeout_prior = osal_next_timeout();
#else /* USE_ICALL */
#ifndef HAL_BOARD_CC2538osalTimeUpdate();
#endif
Hal_ProcessPoll();
……
}

赞(0)
未经允许不得转载:TI中文支持网 » 2530睡眠后如何处理串口数据
分享到: 更多 (0)