STC的ADC是10位或12位。比如8H1K08、8H1K28系列为10位,而8H1K08T、8H3K、8H4K、8H8K系列为12位。 但你是要用16位(ADC_RES、ADC_RESL从高到低bit15:bit0)去读取。 你要是设成左对齐(ADCCFG^RESFMT=0),低6位(ADC_RESL的bit5:bit0)或低4位(ADC_RESL的bit3:bit0)全是0, 你要是设成右对齐(ADCCFG^RESFMT=1),则高6位(ADC_RES的bit15:bit10)或高4位(ADC_RES的bit15:bit12)全是0, 如果要求不高,也可以设为左对齐,只读取高8位即ADC_RES 强烈建议你认真读一下手册中的ADC相关章节。。 |
你没发现你以为的16位 最低的 6 位 始终始终是 0 么? 要按你这样就算 16位 的话,你再 左移个16位,就成32位ADC了, STC能吹上天了。 |
10位的,但是数据可以舍弃后两位变成8位,如果不需要那么高的精度的话,也可以16位,高六位为0 |
为何不求助于手册呢? |
![]() |
那是你没有认真看数据手册,STC的8G系列目前都是10位,你要是用16位计算对了,那就是你代码错了 |
官网发布的一般都是正确的,你这个16位应该是撞对了 10位是对的 |
coody_sz 发表于 2024-6-18 23:55 如你所言,本人认为可能某些环境精度达不到呀,从南京到北京买的没有卖的精,若比较完善达到12位为何说成10位,匪夷所思, ![]() ![]() ![]() |
donglw 发表于 2024-6-18 22:27 STC8H系列、STC32G系列的12位ADC非常精准的。 |
STC8G1K08是10位的ADC |
请相信官网所说的AD结果是10位,不是12位,更不是16位;目前单片机欧洲的ST公司AD转换是12位,Ti公司AD转换是16位。他们的价格都比国产单片机的价格贵。 |