This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530 HalAdcRead 如何使用,可以同时转换两个通道的输入吗

Other Parts Discussed in Thread: CC2530

HalAdcInit();

APCFG &= 0xff ;

P0SEL &= 0xff;

//P0口全部为输入
P0DIR &= 0x00 ;

这是初始化。

转换的部分:

HalAdcSetReference( HAL_ADC_REF_AVDD );
adc1 = HalAdcRead(HAL_ADC_CHANNEL_0, HAL_ADC_RESOLUTION_12);

HalAdcSetReference( HAL_ADC_REF_AVDD );
adc2 = HalAdcRead(HAL_ADC_CHANNEL_1, HAL_ADC_RESOLUTION_12);

HalAdcSetReference( HAL_ADC_REF_AVDD );
adc3 = HalAdcRead(HAL_ADC_CHANNEL_2, HAL_ADC_RESOLUTION_12);

结果三个通道用同样的输入电压,转换的值却是不一样的。

  • 你这个不是同时了,有先后顺序的。

    你可以使用序列转换。、

  • 您好,谢谢您的回复

    问题的话,如果我想在协议栈中使用cc2530上的adc转换传感器的输入,我应该怎么做,如果用上面的代码

    HalAdcSetReference( HAL_ADC_REF_AVDD );
    adc1 = HalAdcRead(HAL_ADC_CHANNEL_0, HAL_ADC_RESOLUTION_12);

    HalAdcSetReference( HAL_ADC_REF_AVDD );
    adc2 = HalAdcRead(HAL_ADC_CHANNEL_1, HAL_ADC_RESOLUTION_12);

    HalAdcSetReference( HAL_ADC_REF_AVDD );
    adc3 = HalAdcRead(HAL_ADC_CHANNEL_2, HAL_ADC_RESOLUTION_12);

    不正确的话。

    请问有示例代码吗,或者我应该从什么方向上入手解决这个问题。

    这个问题困扰我很久了,期待您的建议,万分感谢。

  • 您好,谢谢您的回复 问题的话,如果我想在协议栈中使用cc2530上的adc转换传感器的输入,我应该怎么做,如果用上面的代码 HalAdcSetReference( HAL_ADC_REF_AVDD ); adc1 = HalAdcRead(HAL_ADC_CHANNEL_0, HAL_ADC_RESOLUTION_12); HalAdcSetReference( HAL_ADC_REF_AVDD ); adc2 = HalAdcRead(HAL_ADC_CHANNEL_1, HAL_ADC_RESOLUTION_12); HalAdcSetReference( HAL_ADC_REF_AVDD ); adc3 = HalAdcRead(HAL_ADC_CHANNEL_2, HAL_ADC_RESOLUTION_12); 不正确的话。 请问有示例代码吗,或者我应该从什么方向上入手解决这个问题。 这个问题困扰我很久了,期待您的建议,万分感谢。