hycgivqo 发表于 2025-3-26 18:12:12

ADC转换引脚未接入模拟量但输出满量程

请教下大家ADC转换引脚未接入模拟量但串口输出满量程,这是为什么?
用万用表测adc脚和芯片地脚之间的电压为0.1V,vcc和芯片地之间电压为3.3v
使用STC8H2K12U芯片

下面附上代码和串口输出图






DebugLab 发表于 2025-3-26 18:33:23

手动给个ADC值检查一下算法有没有逻辑错误或计算错误
就是读ADC值的时候软件给个固定值

很明显有逻辑错误或计算错误,因为ADC值最大是4095不是4096
注意数据类型转换,adc_value前面要加(float),还有3.3f和4096f,带小数点的必须是浮点数

梁工 发表于 2025-3-26 21:28:04

用一个1K电阻连接ADC与GND之间,看看读数多少?

hycgivqo 发表于 2025-3-27 10:29:16

感觉是ADC转换函数函数调用上有问题,因为库函数里的这个函数错误就会返回4096;但是我这样调用也没有问题啊 下面按个return 4096感觉可以删除不要了

DebugLab 发表于 2025-3-27 10:57:10

hycgivqo 发表于 2025-3-27 10:29
感觉是ADC转换函数函数调用上有问题,因为库函数里的这个函数错误就会返回4096;但是我这样调用也没有问题 ...

上面的是通道号错误,下面的是超时
带返回值的函数最后必须要无条件return一个值,否则前面的return有条件,条件都不成立的情况下不知道该返回什么

hycgivqo 发表于 2025-3-27 11:19:26

一直进不去这个FOR循环是为啥

乘风飞扬 发表于 2025-3-27 14:33:02

hycgivqo 发表于 2025-3-27 11:19
一直进不去这个FOR循环是为啥

你用的是软件模拟仿真,不是硬件仿真,这样是获取不到硬件标志的。
参考以下帖子进行仿真设置,仿真从第10步开始:

仿真 8系列 MCU,用【一箭双雕之USB转双串口/全自动烧录器】
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=741
(出处: 国芯技术交流网站)
页: [1]
查看完整版本: ADC转换引脚未接入模拟量但输出满量程