QQ624353765 发表于 2023-3-24 11:10:50

有关ADC读取很诡异的事



在ADC中断中先清除ADC中断标志位并关闭ADC时读取的ADC值为0;




如果是先读取ADC值在关闭ADC就正常,请问关闭ADC后ADC的转换值是不是不能读取了?
ADC我是1分钟转换一次

神农鼎 发表于 2023-3-24 11:16:38

读走,再关ADC的电源,或者用DMA来支持ADC
===以后先将具体MCU型号

QQ624353765 发表于 2023-3-24 11:42:53

神农鼎 发表于 2023-3-24 11:16
读走,再关ADC的电源,或者用DMA来支持ADC
===以后先将具体MCU型号

stc8h8k64u

zhp 发表于 2023-3-24 13:28:52

如果要关闭ADC电源,必须先读取ADC转换结果
否则,一旦关闭ADC电源后,ADC转换结果寄存器的值就会被复位为0

梁工 发表于 2023-3-24 14:19:58

楼主的现象正常的,因为你关闭了ADC电源了。一旦关闭ADC电源,ADC模块失电,读到0是正常的。
楼主应该先读取值,之后关闭。

还要记住,每次打开ADC电源,要等待至少1ms之后再启动ADC转换,否则你又会碰到很诡异的事。
这世间所有的ADC,不管是单独的ADC芯片还是MCU自带的ADC外设,开启之后都要延时一定时间(依据IC不用需要1ms~几百ms不等),才能转换的,ADC是典型的模拟电路,也需要供电,允许给ADC模拟电路供电的电源供电后,还是要加点等待时间,等专门给ADC供电的电源稳定下来,再操作ADC。

社区闲人 发表于 2023-3-24 15:13:41

如果一直开着ADC电源,对AD转换有影响吗?

32位8051 发表于 2023-3-24 15:33:42

社区闲人 发表于 2023-3-24 15:13
如果一直开着ADC电源,对AD转换有影响吗?

没影响,相反如果关闭ADC电源的话,下次打开后需要等待1ms才能进行ADC转换。

独风轻扬 发表于 2024-5-7 22:59:35

我读ADC_CH2和ADC_CH3(DMA、中断,查询都试了),只能读到ADC_CH3,如果我把电源够到ADC_CH3能采集到,但是ADC_CH2会跟着变化,电源够到ADC_CH2,两个通道都没有变化

梁工 发表于 2024-5-9 10:07:56

独风轻扬 发表于 2024-5-7 22:59
我读ADC_CH2和ADC_CH3(DMA、中断,查询都试了),只能读到ADC_CH3,如果我把电源够到ADC_CH3能采集到,但是AD ...

你可以先测试下官方的多通道ADC程序,串口返回结果。
页: [1]
查看完整版本: 有关ADC读取很诡异的事