Part Number:CC1310
为什么执行了ADC初始化之后,执行RF_yield函数会卡死?如下为ADC初始化代码,只要执行了这段代码,在后面射频发送完数据后执行RF_yield,程序就会卡死,请问是什么原因呢?
void Hal_Adc_Init(void)
{ //打开adc时钟
AUXWUCClockEnable(AUX_WUC_ANAIF_CLOCK);
AUXWUCClockEnable(AUX_WUC_ADI_CLOCK); AUXWUCClockEnable(AUX_WUC_ADC_CLOCK); //选择adc通道和引脚
AUXADCDisable();
IOCPortConfigureSet(IOID_9, IOC_PORT_AUX_IO, IOC_STD_INPUT);
AUXADCSelectInput(ADC_COMPB_IN_AUXIO3);
//开启adc
AUXADCEnableSync(AUXADC_REF_VDDS_REL, AUXADC_SAMPLE_TIME_10P6_US, AUXADC_TRIGGER_MANUAL);}
Yolande Wang:
您好,
wei zhang 说: //开启adc AUXADCEnableSync(AUXADC_REF_VDDS_REL, AUXADC_SAMPLE_TIME_10P6_US, AUXADC_TRIGGER_MANUAL);
尝试关闭 ADC ,执行 RF_yield 函数正常吗?
,
wei zhang:
是的,屏蔽这行代码后,执行 RF_yield 函数是正常的,如果没屏蔽,就会出问题,所以这是什么原因呢
,
Yolande Wang:
可能存在硬件资源冲突,导致执行 RF_yield() 失败。
您可以尝试在执行 RF_yield() 之后,再开启 ADC 。
,
Yolande Wang:
您好,
经过尝试后,问题解决了吗?
,
Yolande Wang:
请问您为什么使用 the radio driver ,而不使用 SDK 中的 the ADC driver(不是 driverlib)。有理由吗?
,
Yolande Wang:
正常您进行 ADC 初始化是不会影响 RF 核的。
driverlib 中的 ADC 和 Radio Driver 是两种不同的驱动程序,用于不同的硬件模块,在选择上会有一些考量。
,
zhang wei:
后面是在休眠之前加了一句AUXWUCClockDisable(AUX_WUC_ADC_CLOCK), 把ADC时钟关了,休眠之后再打开,才能正常运行
,
Yolande Wang:
感谢反馈,问题解决了就好。