引入
MM32F5270的ADC可配置4個注入通道來擴展轉換通道,那么可進行轉換的通道最多可達20個。
特點
1.通道優先級
注入通道轉換順序從JSQ0 ~ JSQ3優先級由高到底依次轉換。
2. 通道轉換方式
支持單端轉換、差分轉換和偽差分轉換。
3. 數據補償
注入通道轉換的值減去對應注入補償寄存器的值,補償后的結果可能為負值,因此配置了注入補償寄存器的注入通道轉換結果是有符號數據,根據數據對齊方式不同符號位SEXT不同。圖3.1描述了數據分辨率與數據補償左對齊關系,圖3.2描述數據對齊及注入通道符號位位置。
圖3.1 數據分辨率與數據補償左對齊
圖3.2 數據對齊
4. 注入通道中斷
注入通道序列轉換結束中斷(JEOSIF)、注入通道轉換結束中斷(JEOCIF)和注入通道采樣結束中斷(JEOSMPIF)。
5. 注入通道啟動轉換
主要有兩種方式,第一種是在任意通道工作模式下,使能自動注入ANYCR_JAUTO,當任意通道序列轉換完成后,注入通道會自動緊跟著轉換;第二種是自行設置注入轉換使能ANYCR_JADST,即可轉換注入通道。注意注入通道轉換完成后ANYCR_JADST,將被硬自動清除。
例程介紹
在任意通道工作模式下,配置規則組轉換序列,再配置注入組轉換序列,使能自動注入,查看注入通道是否轉換完成。
具體配置步驟:
1配置ADC初始化結構體,配置分辨率12位、單周期轉換、數據右對齊、單端轉換、參考內部電壓
2配置規則組轉換序列和每個規則通道的采樣時間,注入組轉換序列和每個注入通道的采樣時間
3使能注入通道自動轉換
4使能ADC
參數定義如下:
#defineAPP_ADC_SEQ_LEN3u #defineAPP_ADC_EXT_SEQ_LEN2u /*channelsinanysequence.*/ uint32_tapp_adc_seq_channels[APP_ADC_SEQ_LEN]= { BOARD_ADC_CHN_NUM_1, BOARD_ADC_CHN_NUM_4, BOARD_ADC_CHN_NUM_5, }; /*channelsininjectsequence.*/ uint32_tapp_adc_extseq_channels[APP_ADC_EXT_SEQ_LEN]= { BOARD_ADC_CHN_NUM_5, BOARD_ADC_CHN_NUM_1 };
配置代碼如下:
/*setuptheconverter.*/ ADC_Init_Typeadc_init; adc_init.Resolution=ADC_Resolution_Alt0; adc_init.ConvMode=ADC_ConvMode_SeqOneTime; adc_init.Align=ADC_Align_Right; adc_init.SingleDiffMode=ADC_SingleDiffConvMode_SingleEnd; adc_init.SingleVolt=ADC_SingleConvVref_Internal; ADC_Init(ADC1,&adc_init); /*setuptheconversionanysequence.*/ /*configregularsequencechannel*/ for(uint32_ti=0u;i
注:ADC轉換前必須獲取校驗因子,否則無法轉換。
結果如下圖:
審核編輯:湯梓紅
-
寄存器
+關注
關注
31文章
5325瀏覽量
120048 -
adc
+關注
關注
98文章
6452瀏覽量
544144 -
中斷
+關注
關注
5文章
895瀏覽量
41401 -
采樣
+關注
關注
1文章
120瀏覽量
25542
原文標題:靈動微課堂 (第257講)|MM32F5270平臺ADC注入通道的單周期采樣的實現
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論