本来打算今天测试下ADC功能了,结果配置了,没报错,能执行,但就读不出数据,简直奇葩了。
先查了下原理图,上面电压都有,都对。
然后配置ADC选项。就改了下其中的接口,然后就是回调函数,之后中断等级,就结束了。
err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
if(FSP_SUCCESS != err)
{
while(1);
}
err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
assert(FSP_SUCCESS == err);
初始化能过去。
(void) R_ADC_ScanStart(&g_adc0_ctrl);
scan_complete_flag = false;
while (!scan_complete_flag)
{
/* Wait for callback to set flag. */
}
err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data0);
assert(FSP_SUCCESS == err);
a0=(double)(adc_data0/4095.0)*3.3;
轮询去读也能转换完成,然后就是里面数据全是空的。
还有看了别人帖子,我发现出现同样的初始化不过去,实际就是外部RTC时钟晶振没连接进去,导致初始化不了,用手按下晶振那块就能过去了,或者使用开发板配置FSP。这样也可以直接过去。
或者改下硬件即可。短上这两个地方。
数据是空?就是全为0吗?
引用: wangerxian 发表于 2023-7-31 15:27 数据是空?就是全为0吗?
对的,读不到数据
还有看了别人帖子,我发现出现同样的初始化不过去,实际就是外部RTC时钟晶振没连接进去,导致初始化不了,用手按下晶振那块就能过去了,或者使用开发板配置FSP。这样也可以直接过去。
解决问题了吗?