我們使用 STM32CubeMX 軟件進行配置。DAC 的配置是相對很簡單的,如下圖所示:

選擇兩個輸出通道,其中 External Trigger 選項為是否選擇 外部中斷EXTI9 觸發,如下圖所示:

DAC 的基本設置,很簡單,對于博主使用的 STM32L151 來說就只有2個選項:

DAC選擇了輸出緩存,可以用來減少輸出阻抗,無需外部運放即可直接驅動外部負載。但是輸出的電壓沒法低于20mv。
不使能輸出緩存,DAC可以輸出低于20mv的信號。
對于其他型號的 DAC ,可能還會有下面兩個選項:
Wave generation mode
波形生成模式:可選三角波發生器 ( Triangle wave generation ) 和 噪聲波形 ( noise wave generation )
Maximum Triangle Amplitude,最大三角波幅:0-4095 對應 0V~3.3V
1、觸發源software trigger與None的區別
這里要額外說明一下,最后一個選項 software trigger (軟件觸發) 與 選擇 None (沒有觸發源)的區別。
這兩種觸發源很多小伙伴在使用的時候會搞糊涂,實際上這兩者是完全不同的,先用文字簡單解釋一下(簡單使用 HAL 庫,不了解寄存器沒關系,這里只是為了說明區別,):選擇 None (沒有觸發源):只在向 DAC 數據寄存器 DHR 寫入數據之后,DAC 轉化模塊自動轉換一次。選擇 software trigger (軟件觸發):
向軟件觸發寄存器 SWTRIGR 中寫入命令時觸發轉換,將 DOR 寄存器中的數據進行轉換。 但是在這個之間需要向 DAC 數據寄存器 DHR 寫入數據, 再進行軟件觸發操作。
可以說,software trigger (軟件觸發)就比 None (沒有觸發源) 多一個步驟,首先都要寫 DHR 寄存器寫入數據,寫完后 None 自動轉換,但是 software trigger 需要多一步軟件觸發操作。
在標準庫中,使用步驟區別:如果模式為 DAC_Trigger_None :直接使用 DAC_SetChannelxData() 設置輸出電壓,就可以設定輸出電壓的大小
如果模式為軟件觸發:每次在使用 DAC_SetChannelxData() 設置或者修改輸出電壓后, 還需要調用 DAC_SoftwareTriggerCmd(),使能軟件觸發。
在 HAL 庫中,沒有單獨的軟件觸發的代碼,因為 HAL_DAC_Start() 函數中包含了軟觸發轉換的代碼。所以在 HAL 庫中,建議的使用方法步驟為:初始化完成后,先使用 HAL_DAC_SetValue(); ,然后再使用 HAL_DAC_Start(); ,這樣的先后順序不管是使用上面的那種方式,都能夠正常輸出電壓值。
在平時使用中需要謹慎使用,因為每一次修改輸出電壓后,都必須產生一次觸發信號來使得 DAC 觸發 。
-
dac
+關注
關注
44文章
2410瀏覽量
193713 -
STM32
+關注
關注
2293文章
11032瀏覽量
364868 -
中斷
+關注
關注
5文章
905瀏覽量
42795 -
stm32cubemx
+關注
關注
5文章
286瀏覽量
16262 -
CubeMx
+關注
關注
0文章
31瀏覽量
1652
發布評論請先 登錄
如何使用stm32Cubemx軟件配置DAC電壓輸出和ADC電壓檢測
STM32CubeMX配置工具 輕松優化MCU配置參數

STM32CUBEMX配置教程(十三)STM32的定時器觸發的固定頻率DAC輸出(使用DMA)

STM32CUBEMX配置教程(二)時鐘等內部參數配置

STM32CUBEMX配置教程(九)STM32串口DMA收發數據

STM32CubeMX學習筆記——STM32H743_DAC

2.使用cubemx配置stm32(二)__核心配置

STM32 HAL庫 CUBEMX配置 ADC采集

STM32F407的USB_HID 基礎配置STM32CubeMX

評論