在发送端,发送完数据(接收端是可以受到数据的),通过调用sleep进入低功耗之前,我把外设(pin adc_buf rf uart )关闭了我在sleep之后再把这些打开,为什么程序就死掉了。接收端不会再收到发送端发出的数据,部分代码如下:
while (1)
{
/*串口数据接收及处理*/
vUSART_receive(&gsUsartChannel);
//从机模式
if (gsAtCmdParam.ubHostOrSave)
{
//转换AD值
adc_sense = AD_Read(CC1310_LAUNCHXL_ADCBUF0CHANNEL0);
adc_power = AD_Read(CC1310_LAUNCHXL_ADCBUF0CHANNELVDDS);
//发送数据
RFTX_send_sense_value(adc_sense, adc_power);
Power_On();
}
}
void Power_On(void)
{
IO_close();
FLASH_close();
USART_close();
RFTX_close();
TIMER_close();
sleep(10);
IO_init();
AD_init();// ADC初始化
IO_Tx_init();
RFTX_open(); //无线打开
}
Susan Yang:
CC1310唤醒的话,您可以参考数据手册 www.ti.com/…/cc1310.pdf Table 6-2. Power Modes 可以采用下面的方式 Wake-up on RTC/ Wake-up on Pin Edge /Wake-up on Reset Pin 以及无线唤醒 WOR
user6197252:
回复 Susan Yang:
例如调用sleep(10);就是让设备休眠10秒钟,之后要让设备继续工作,还要有唤醒的操作?还是说10秒之后,设备就继续工作了,而不需要在进行其他操作?
Susan Yang:
回复 user6197252:
参考之前数据手册内的内容
CC1310 有4种模式, ACTIVE/ IDLE /STANDBY /SHUTDOWN
您现在是进入到standby模式?那您可以参考例程pinStandby
dev.ti.com/…/node
在用户指南中有指出各个模式下唤醒的方式,如
www.ti.com/…/swcu117h.pdf
6.6.4 Standby Mode
Possible wake-up sources are events from I/O, JTAG, RTC, and the sensor processor