之前也查了不少資料,參考了其他人寫的,綜合了一下,通過定時器觸發adc多通道轉換,並通過dma傳輸資料,希望能給大家帶來一些啟發。
使用定時器2的cc2觸發adc1轉換,ad轉換包含adc_channel_8和adc_channel_9,轉換結果通過dma1_channel1放入緩衝區
adc為乙個整體,其外部不單只外部引腳,除adc外的其他所有均為外部
以下**執行中stm32f103上,主時鐘為72mhz
以上為adc與dma的初始化過程。uint16_t ad_data[
200]
;//ad轉換結果存放
void
adc_init
(void
)/*dma中斷函式*/
void
dma1_channel1_irqhandler
(void
)}
定時器2觸發需使用pwm模式,定時器比較匹配輸出訊號,該訊號用於觸發ad轉換。
觸發訊號未與外部引腳相連,所以引腳上不會產生pwm波形,與常規pwm波形發生只差引腳關聯。
使用外部觸發ad轉換並採用dma傳輸資料,比較適合需要高頻率ad轉換的環境,不用頻繁手動開啟ad轉換,只需轉換完成之後到dma緩衝區讀取即可。/*
period為pwm週期,prescaler為定時器預分頻洗漱
定時器2採用內部時鐘,為72mhz
*/tim_timebaseinittypedef tim_timebasestructure;
tim_ocinittypedef tim_ocinitstructure;
void
tim2_init
(u16 period,u16 prescaler)
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 高階定時器的功能框圖 由功能框圖可以看出,高階定時器部分可以分為 時鐘源,控制器,時基單元,輸入捕獲...