你好
我试图读取从电压devider(3v精确)的电压输出,我设法了解关于ADC读数的一些部分
使用SDK 6.0.14 I基于外设示例的BATT示例编写了此代码
//在periph_setup.h.中
#define adc_port gpio_port_0.
#define adc_pin gpio_pin_1.
uint32_t adc_get_voltage_sample(void);
gpio_configurepin(adc_port,adc_pin,输入,pid_adc,false);//在set_pad_functions中
//在periph_setup.c.中
uint32_t adc_get_voltage_sample(void)
{
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尝试通过Teraterm尝试获得该函数
printf_byte_dec(UART,ADC_GET_VOLTAGE_SAMPLE());
我得到的价值是24-25 ......我想如果代码是正确的,这个值是错的...谢谢
设备:
嗨Hamzaaffes,
谢谢你的问题在线。您能否说明ADC_GET_VOLTAGE_SAMPLE()和ADC_GET_SAMPLE()返回的值是什么?
谢谢,PM_DIALOG.
谢谢您的答复 。
我得到的价值总是15个是错误的。我试图从其他渠道读取,但结果仍然是相同的。我正试图遵循自脑袋的读取电压的BATT Exemple。如果您可以澄清适当的函数和文件以获得有用的正确结果。
嗨Hamzaaffes,
当然,SDK的BATT示例应作为参考。似乎您使用的是正确的配置。请您以调试模式运行它,并共享ADC寄存器的值?此外,您可以在“监视”窗口中添加ADC_Sample值并检查值。
谢谢,PM_DIALOG.
谢谢您的答复,
自从我仍然是初学者以来,你能通过这个过程引导我来帮助我吗?
嗨Hamzaaffes,
谢谢,PM_DIALOG.