stm32定時器觸發ADC1多通道規則轉換

2021-10-25 15:16:18 字數 902 閱讀 5041

之前也查了不少資料,參考了其他人寫的,綜合了一下,通過定時器觸發adc多通道轉換,並通過dma傳輸資料,希望能給大家帶來一些啟發。

使用定時器2的cc2觸發adc1轉換,ad轉換包含adc_channel_8和adc_channel_9,轉換結果通過dma1_channel1放入緩衝區

adc為乙個整體,其外部不單只外部引腳,除adc外的其他所有均為外部

以下**執行中stm32f103上,主時鐘為72mhz

uint16_t ad_data[

200]

;//ad轉換結果存放

void

adc_init

(void

)/*dma中斷函式*/

void

dma1_channel1_irqhandler

(void

)}

以上為adc與dma的初始化過程。

定時器2觸發需使用pwm模式,定時器比較匹配輸出訊號,該訊號用於觸發ad轉換。

觸發訊號未與外部引腳相連,所以引腳上不會產生pwm波形,與常規pwm波形發生只差引腳關聯。

/*

period為pwm週期,prescaler為定時器預分頻洗漱

定時器2採用內部時鐘,為72mhz

*/tim_timebaseinittypedef tim_timebasestructure;

tim_ocinittypedef tim_ocinitstructure;

void

tim2_init

(u16 period,u16 prescaler)

使用外部觸發ad轉換並採用dma傳輸資料,比較適合需要高頻率ad轉換的環境,不用頻繁手動開啟ad轉換,只需轉換完成之後到dma緩衝區讀取即可。

stm32關定時器 STM32定時器TIM3程式

include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...

定時器 STM32定時器 基本定時器1

我是鼎!定時器時鐘一定要明確其中有哪些變數。上圖為stm407資料手冊摘出來的,可能看不清楚,其實就蘊含了幾點資訊。注意一點,我們看圖2,我們以apb1舉例,上面掛著很多的外設,包括usart1 adc 以及定時器,我們知道apb1上面最高時鐘頻率為84mhz,但是定時器的時鐘是要在此基礎上乘2,也...

STM32高階定時器(1)

高階定時器主要學習它的輸入捕獲和輸出比較的功能 1 高階定時器與基本定時器的區別 在基本定時器的基礎上增加了 外部引腳 可以實現輸入捕獲和輸出比較 可程式設計死區互補輸出 重複計數器 帶剎車斷路 2 高階定時器的功能框圖 由功能框圖可以看出,高階定時器部分可以分為 時鐘源,控制器,時基單元,輸入捕獲...