之前也查了不少資料,參考了其他人寫的,綜合了一下,通過定時器觸發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 高階定時器的功能框圖 由功能框圖可以看出,高階定時器部分可以分為 時鐘源,控制器,時基單元,輸入捕獲...