熟悉GD32的小伙伴都知道,ADC除了可以采集IO口上的電壓外,還有兩個內部通道,分別為內部溫度傳感器通道(ADC0_CH16)和Vrefint通道(ADC0_CH17),其中內部溫度傳感器通道可以采集芯片周圍的溫度(注意,這個溫度通道適用于采集相對溫度,如果用來測試絕對溫度,是有一定的誤差哦),Vrefint是一個穩定的帶隙基準電壓,典型值為1.2V。
有的小伙伴反饋使用這兩個內部通道時,始終得不到轉換數據,那么可能的原因有哪些呢?
原因一:
使用ADC的外部通道即IO電壓時,將IO口配置為模擬模式,

然后配置ADC就可以正常工作了,而由于內部通道不需要配置IO口,所有有的小伙伴就直接將IO口的配置去除,但此時發現內部通道始終沒有數據。

這是因為ADC的配置中少了一個關鍵的函數,那就是adc_tempsensor_vrefint_enable:

這個函數是用來打開ADC內部通道的,需要在ADC使能前調用,否則就沒辦法正常使用內部通道哦。
原因二:
我們知道同一個IO口可以給多個ADC單元來使用,比如PA0,從datasheet中可以看出可以用于ADC0、ADC1或ADC2的通道0

所以很多小伙伴想當然的認為內部通道也可以給ADC1或ADC2來使用,但其實GD32的用戶手冊中已經明確的指出內部通道只能用于ADC0:

所以你用ADC1或ADC2去轉換,當然是不行的啦。
-
單片機
+關注
關注
6067文章
44969瀏覽量
649364 -
IO
+關注
關注
0文章
490瀏覽量
40419 -
adc
+關注
關注
99文章
6678瀏覽量
548864 -
GD32
+關注
關注
7文章
420瀏覽量
25380
發布評論請先 登錄
GD32開發實戰指南(基礎篇) 第14章 內部溫度傳感器

怎樣使用軟件觸發讀取GD32的ADC呢
GD32替換STM32?這些坑你別踩...
【GD32】GD32讀取ADC數據

【GD32】GD32設置TIMER0輸出PWM

【GD32】GD32 DMA+ADC多通道掃描

如何通過GD32 MCU內部ADC參考電壓通道提高采樣精度?

GD32 MCU ISP失敗的原因

GD32 MCU內部溫度傳感器如何使用,以及適合哪種應用場景?

GD32 ADC轉換時間如何計算?

評論