[综合信息] HC32F460 ADC怎么测量引脚电压

[复制链接]
570|23
手机看帖
扫描二维码
随时随地手机跟帖
请叫我污春|  楼主 | 2022-5-10 10:32 | 显示全部楼层 |阅读模式
请问F460的官方例程不可以直接测量引脚电压吗,在例程里面无论怎么改输入通道,测量出来的电压值都是3.3v左右,请问那我要是想测量一个引脚的电压的话应该怎么弄啊,用的例程是adc_sa_base;
static void AdcChannelConfig(void)
{
    stc_adc_ch_cfg_t stcChCfg;
    uint8_t au8Adc1SaSampTime[ADC1_SA_CHANNEL_COUNT] = ADC1_SA_CHANNEL_SAMPLE_TIME;
    uint8_t au8Adc2SaSampTime[ADC2_SA_CHANNEL_COUNT] = ADC2_SA_CHANNEL_SAMPLE_TIME;

    MEM_ZERO_STRUCT(stcChCfg);

    stcChCfg.u32Channel  = ADC1_SA_CHANNEL;   //设置采样通道
    stcChCfg.u8Sequence  = ADC_SEQ_A;        //序列A采样
    stcChCfg.pu8SampTime = au8Adc1SaSampTime;  //ADC通道采样时间
    /* 1. Set the ADC pin to analog mode. */
    AdcSetChannelPinMode(M4_ADC1, ADC1_CHANNEL, Pin_Mode_Ana);//设置采样引脚模式及通道映射
    /* 2. Add ADC channel. */
    ADC_AddAdcChannel(M4_ADC1, &stcChCfg);//配置ADC通道设置
    /* 3. Configure the average channel if you need. */
    ADC_ConfigAvg(M4_ADC1, AdcAvcnt_32);
    /* 4. Add average channel if you need. */
    ADC_AddAvgChannel(M4_ADC1, ADC1_AVG_CHANNEL);

    stcChCfg.u32Channel  = ADC2_SA_CHANNEL;
    stcChCfg.pu8SampTime = au8Adc2SaSampTime;
    /* 1. Set the ADC pin to analog mode. */
    AdcSetChannelPinMode(M4_ADC2, ADC2_CHANNEL, Pin_Mode_Ana);
    /* 2. Add ADC channel. */
    ADC_AddAdcChannel(M4_ADC2, &stcChCfg);

    /* 3. Configure the average channel if you need. */
    ADC_ConfigAvg(M4_ADC2, AdcAvcnt_64);
    /* 4. Add average channel if you need. */
    ADC_AddAvgChannel(M4_ADC2, ADC2_AVG_CHANNEL);
}
程序里直接修改设置采样通道这里,加了几个通道,但是每个通道显示的电压还是3.3左右,但是引脚并没有外接电压


使用特权

评论回复
请叫我污春|  楼主 | 2022-5-10 10:40 | 显示全部楼层
有哪位老哥用过这款芯片吗

使用特权

评论回复
wubangmi| | 2022-5-10 12:10 | 显示全部楼层
请问你为什么要先加通道测试,而不是先测试例程,例程测试通过了再根据自己的理解去增加通道或者修改例程代码。
按照你的描述,我觉得你是还没学会走路的情况下直接要迈开腿跑步,不摔倒就不正常了。

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-10 14:47 | 显示全部楼层
wubangmi 发表于 2022-5-10 12:10
请问你为什么要先加通道测试,而不是先测试例程,例程测试通过了再根据自己的理解去增加通道或者修改例程代 ...

因为我想用它检测引脚电压值,可是例程里面直接出来的是3.3v电压,不应该是引脚有电压输入之后才有转换值吗,不知道他这个测得是哪里的3.3v,我认真看了下手册,好像也没有讲这个的,只有一个外部通道和内部通道切换

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-10 15:11 | 显示全部楼层
ADC12_IN10 value 4019.
ADC12_IN10 voltage is 3.2262V.
ADC1_IN0 value 4022.
ADC1_IN0 voltage is 3.2286V.
ADC1_IN1 value 4022.
ADC1_IN1 voltage is 3.2286V.
ADC1_IN2 value 4021.
ADC1_IN2 voltage is 3.2278V.
ADC12_IN10 value 4019.
ADC12_IN10 voltage is 3.2262V.
ADC1_IN0 value 4022.
ADC1_IN0 voltage is 3.2286V.
ADC1_IN1 value 4022.
ADC1_IN1 voltage is 3.2286V.
串口调试助手打印出来电压已经有3.3v,但是测量引脚电压又没有3.3v

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-10 15:17 | 显示全部楼层
它这个也不是选择的内部通道,不知道这个电压值怎么来的

使用特权

评论回复
wubangmi| | 2022-5-10 15:52 | 显示全部楼层
48842627a19902ae2b.png
例程里出来的不是3.3V啊,这是我用例程跑的,相应的采样通道我没接电压

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-10 16:25 | 显示全部楼层
wubangmi 发表于 2022-5-10 15:52
例程里出来的不是3.3V啊,这是我用例程跑的,相应的采样通道我没接电压

我看你这个是IN16,也没有这个引脚啊,你测的是内部通道的吗,可是我的输出就是3.2几v,难道是芯片不一样a吗,我用的是100个脚的

使用特权

评论回复

评论

wubangmi 2022-5-10 17:05 回复TA
你直接跑例程就行,什么都不用改,肯定能行的,我改过例程了 
kiwis66| | 2022-5-11 21:44 | 显示全部楼层
万用表对比下

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-13 11:41 | 显示全部楼层
本帖最后由 请叫我污春 于 2022-5-13 11:46 编辑
wubangmi 发表于 2022-5-10 15:52
例程里出来的不是3.3V啊,这是我用例程跑的,相应的采样通道我没接电压

我原封不动烧例程进去输出还是3.3v左右,和电压表实际测得的值不一样,电压表测的是一点几v,我确认下这个adc_01_sa_base例程是检测的引脚电压值吧,还有我无论改哪个通道显示都是3.3v左右,快麻了

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-13 11:42 | 显示全部楼层

测得的引脚电压值和串口打印出来的值不匹配

使用特权

评论回复
wubangmi| | 2022-5-13 13:53 | 显示全部楼层
2209627df196d0a6f.png
这是我跑的例程的ADC采样打印纸,PC0口的输入电压为稳压源,2.64V输入,计算后的值打印如图。
例程的时钟倍频用的是外部8M倍频的,请注意一下。
如果你确定已经注意到了主频而例程还不行,那就奉劝你一句,不要浪费时间了,直接放弃吧,

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-13 15:08 | 显示全部楼层
wubangmi 发表于 2022-5-13 13:53
这是我跑的例程的ADC采样打印纸,PC0口的输入电压为稳压源,2.64V输入,计算后的值打印如图。
例程的时钟 ...

我用的外部晶振也是8M的,我试了adc_11_channel_remap这个例子,还是输出打印还是3.3v左右,打算先不高adc了,不晓得毛病出在哪了,多谢大哥

使用特权

评论回复
yangxiaor520| | 2022-5-13 18:32 | 显示全部楼层
引脚上输入的电压是多少啊?

使用特权

评论回复
littlelida| | 2022-5-13 20:48 | 显示全部楼层
这个型号的例程很多的

使用特权

评论回复
kiwis66| | 2022-5-14 14:19 | 显示全部楼层
请叫我污春 发表于 2022-5-13 11:42
测得的引脚电压值和串口打印出来的值不匹配

这种情况,要看初始化配置,adc基准

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-17 13:31 | 显示全部楼层
littlelida 发表于 2022-5-13 20:48
这个型号的例程很多的

请问除了官网什么地方还有例程啊

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-17 13:34 | 显示全部楼层
kiwis66 发表于 2022-5-14 14:19
这种情况,要看初始化配置,adc基准

请问你说这个基准是在那里配置的啊,我只看到最后计算的时候有一个ADC_VREF基准电压

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-17 13:38 | 显示全部楼层
yangxiaor520 发表于 2022-5-13 18:32
引脚上输入的电压是多少啊?

引脚没有外接输入电压,只是用万用表测的话大概有1.6v左右,但是用示波器看的话没有电压值,现在就很纳闷,无论ADC输入引脚怎么改,串口打印输出都是3.3v左右

使用特权

评论回复
kiwis66| | 2022-5-18 20:27 | 显示全部楼层
硬件电路查一下吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则