![]() |
發(fā)布時間: 2024-6-18 20:26
正文摘要:我測試,只有16位才是正確結(jié)果,也就是(寄存器的值/65535*VCC),但是官網(wǎng)寫的是10位應(yīng)該用1024???是我撞對了還是手冊錯了? #include <STC8.H> unsigned int ADCReadBt; unsigned char ADCReadBtH ... |
STC的ADC是10位或12位。比如8H1K08、8H1K28系列為10位,而8H1K08T、8H3K、8H4K、8H8K系列為12位。 但你是要用16位(ADC_RES、ADC_RESL從高到低bit15:bit0)去讀取。 你要是設(shè)成左對齊(ADCCFG^RESFMT=0),低6位(ADC_RESL的bit5:bit0)或低4位(ADC_RESL的bit3:bit0)全是0, 你要是設(shè)成右對齊(ADCCFG^RESFMT=1),則高6位(ADC_RES的bit15:bit10)或高4位(ADC_RES的bit15:bit12)全是0, 如果要求不高,也可以設(shè)為左對齊,只讀取高8位即ADC_RES 強烈建議你認(rèn)真讀一下手冊中的ADC相關(guān)章節(jié)。。 |
你沒發(fā)現(xiàn)你以為的16位 最低的 6 位 始終始終是 0 么? 要按你這樣就算 16位 的話,你再 左移個16位,就成32位ADC了, STC能吹上天了。 |
10位的,但是數(shù)據(jù)可以舍棄后兩位變成8位,如果不需要那么高的精度的話,也可以16位,高六位為0 |
為何不求助于手冊呢? |
![]() |
那是你沒有認(rèn)真看數(shù)據(jù)手冊,STC的8G系列目前都是10位,你要是用16位計算對了,那就是你代碼錯了 |
官網(wǎng)發(fā)布的一般都是正確的,你這個16位應(yīng)該是撞對了 10位是對的 |
coody_sz 發(fā)表于 2024-6-18 23:55 如你所言,本人認(rèn)為可能某些環(huán)境精度達(dá)不到呀,從南京到北京買的沒有賣的精,若比較完善達(dá)到12位為何說成10位,匪夷所思, ![]() ![]() ![]() |
donglw 發(fā)表于 2024-6-18 22:27 STC8H系列、STC32G系列的12位ADC非常精準(zhǔn)的。 |
STC8G1K08是10位的ADC |
請相信官網(wǎng)所說的AD結(jié)果是10位,不是12位,更不是16位;目前單片機歐洲的ST公司AD轉(zhuǎn)換是12位,Ti公司AD轉(zhuǎn)換是16位。他們的價格都比國產(chǎn)單片機的價格貴。 |
Powered by 單片機教程網(wǎng)