158***144
参考v1.7.0版本例程,利用CR5513BEND,借用了ADC单端采样的实例,通过MSIO1管脚来检测电压,以下是测试代码,实际测量值应为1.8V左右,现测的电压在0.87V左右,请问是什么原因
#define TEST_CONV_LENGTH (16UL)
adc_handle_t g_adc_handle;
uint16_t conversion[TEST_CONV_LENGTH];
double voltage[TEST_CONV_LENGTH];
void adc_single(void)
{
g_adc_handle.init.channel_p = ADC_INPUT_SRC_IO1;
g_adc_handle.init.channel_n = ADC_INPUT_SRC_IO1;
g_adc_handle.init.input_mode = ADC_INPUT_SINGLE;
g_adc_handle.init.ref_source = ADC_REF_SRC_BUF_INT;
g_adc_handle.init.ref_value = ADC_REF_VALUE_1P6;
g_adc_handle.init.clock = ADC_CLK_1P6M;
hal_adc_deinit(&g_adc_handle);
hal_adc_init(&g_adc_handle);
memset(conversion, 0, sizeof(conversion));
printf("Start single sampling.\r\n");
hal_adc_poll_for_conversion(&g_adc_handle, conversion, TEST_CONV_LENGTH);
while (g_adc_handle.state == HAL_ADC_STATE_BUSY);
hal_gr551x_adc_voltage_intern(&g_adc_handle, conversion, voltage, TEST_CONV_LENGTH);
printf("Conversion value:\r\n");
}
zhongchengzhi
您好,换个MSIO试试呢,确保MSIO外部没有连接其他外设。
158***144
您好,用示波器量了波形是很平稳的电压,但读到的数据其实是一直在变,不稳定,不确定是什么原因,现在把其他功能都关了,只调试AD,情况还是一样。
打开微信,使用“扫一扫”即可关注