有点意思,按你这样轮询采集两个通道,第二个通道始终为0。 先采集6通道,读出来是144mV, 8通道是0. 先采集8通道,读出来是1732mV, 6通道是0.
你那边怎么样?
Code: Select all
int battery_low_voltage_detect_test(void) {
int retval = 0;
uint32_t adc_value = 0;
TUYA_ADC_BASE_CFG_T adc_cfg = {
.ch_nums = 1,
.ch_list.data = (1 << 8), //(1 << 8),
.width = 12,
.type = TUYA_ADC_EXTERNAL_SAMPLE_VOL,
};
/* read channel 6 */
tal_adc_deinit(TUYA_ADC_NUM_0);
adc_cfg.ch_list.data = (1 << 6);
tal_adc_init(TUYA_ADC_NUM_0, &adc_cfg);
retval = (uint32_t)tal_adc_read_voltage(TUYA_ADC_NUM_0, &adc_value, 1);
TAL_PR_INFO("adc_value ch6 read value = %d mV.", adc_value);
/* read channel 8 */
tal_adc_deinit(TUYA_ADC_NUM_0);
adc_cfg.ch_list.data = (1 << 8);
tal_adc_init(TUYA_ADC_NUM_0, &adc_cfg);
retval = (uint32_t)tal_adc_read_voltage(TUYA_ADC_NUM_0, &adc_value, 1);
TAL_PR_INFO("adc_value ch8 read value = %d mV.", adc_value);
return retval;
}