嗨
我试图读电压输出从电压分压器(3v精确),我设法了解有关adc读数的一些部分
使用SDK 6.0.14,我基于外围示例中的batt示例编写了这段代码
/ /在periph_setup.h
#定义ADC_PORT GPIO_PORT_0
#定义ADC_PIN GPIO_PIN_1
uint32_t adc_get_voltage_sample(无效);
GPIO_ConfigurePin (ADC_PORT ADC_PIN,输入、PID_ADC假);/ /在set_pad_functions
/ /在periph_setup.c
uint32_t adc_get_voltage_sample(空白)
{
uint32_t adc_sample;
adc_config_t cfg =
{
.mode = ADC_INPUT_MODE_SINGLE_ENDED,
.sign = true,
.attn = true
};
adc_init (cfg);
adc_set_se_input (ADC_INPUT_SE_P0_1);
adc_sample = adc_get_sample ();
adc_disable ();
返回adc_sample;
};
我在main。c中调用这个函数试图通过terterm得到值
printf_byte_dec (UART adc_get_voltage_sample ());
我得到的值是24-25…我想如果代码是正确的,这个值就是错误的……谢谢你!
设备:
嗨HamzaAffes,
谢谢你的在线问题。你能指出adc_get_voltage_sample()和adc_get_sample()返回的值是什么吗?
谢谢,PM_Dialog
谢谢你的回复。
我得到的值总是15,这是错误的。我试着从其他渠道读,但还是一样的结果。我正试着按照电池的例子,如何读电压,因为我仍然是一个初学者。如果您能够澄清适当的函数和文件以获得正确的结果,将是有帮助的。
嗨HamzaAffes,
当然,SDK的batt示例应该作为参考。看起来您使用的配置是正确的。你能在调试模式下运行它并共享ADC寄存器的值吗?此外,您可以在监视窗口中添加adc_sample值并检查该值。
谢谢,PM_Dialog
谢谢你的回复,
由于我还是一个初学者,您能帮助我通过这个过程指导我吗?
嗨HamzaAffes,
谢谢,PM_Dialog