我們使用 STM32CubeMX 軟件進(jìn)行配置。DAC 的配置是相對很簡單的,如下圖所示:
選擇兩個輸出通道,其中 External Trigger 選項(xiàng)為是否選擇 外部中斷EXTI9 觸發(fā),如下圖所示:
DAC 的基本設(shè)置,很簡單,對于博主使用的 STM32L151 來說就只有2個選項(xiàng):
DAC選擇了輸出緩存,可以用來減少輸出阻抗,無需外部運(yùn)放即可直接驅(qū)動外部負(fù)載。但是輸出的電壓沒法低于20mv。
不使能輸出緩存,DAC可以輸出低于20mv的信號。
對于其他型號的 DAC ,可能還會有下面兩個選項(xiàng):
Wave generation mode
波形生成模式:可選三角波發(fā)生器 ( Triangle wave generation ) 和 噪聲波形 ( noise wave generation )
Maximum Triangle Amplitude,最大三角波幅:0-4095 對應(yīng) 0V~3.3V
1、觸發(fā)源software trigger與None的區(qū)別
這里要額外說明一下,最后一個選項(xiàng) software trigger (軟件觸發(fā)) 與 選擇 None (沒有觸發(fā)源)的區(qū)別。
這兩種觸發(fā)源很多小伙伴在使用的時候會搞糊涂,實(shí)際上這兩者是完全不同的,先用文字簡單解釋一下(簡單使用 HAL 庫,不了解寄存器沒關(guān)系,這里只是為了說明區(qū)別,):選擇 None (沒有觸發(fā)源):只在向 DAC 數(shù)據(jù)寄存器 DHR 寫入數(shù)據(jù)之后,DAC 轉(zhuǎn)化模塊自動轉(zhuǎn)換一次。選擇 software trigger (軟件觸發(fā)):
向軟件觸發(fā)寄存器 SWTRIGR 中寫入命令時觸發(fā)轉(zhuǎn)換,將 DOR 寄存器中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。 但是在這個之間需要向 DAC 數(shù)據(jù)寄存器 DHR 寫入數(shù)據(jù), 再進(jìn)行軟件觸發(fā)操作。
可以說,software trigger (軟件觸發(fā))就比 None (沒有觸發(fā)源) 多一個步驟,首先都要寫 DHR 寄存器寫入數(shù)據(jù),寫完后 None 自動轉(zhuǎn)換,但是 software trigger 需要多一步軟件觸發(fā)操作。
在標(biāo)準(zhǔn)庫中,使用步驟區(qū)別:如果模式為 DAC_Trigger_None :直接使用 DAC_SetChannelxData() 設(shè)置輸出電壓,就可以設(shè)定輸出電壓的大小
如果模式為軟件觸發(fā):每次在使用 DAC_SetChannelxData() 設(shè)置或者修改輸出電壓后, 還需要調(diào)用 DAC_SoftwareTriggerCmd(),使能軟件觸發(fā)。
在 HAL 庫中,沒有單獨(dú)的軟件觸發(fā)的代碼,因?yàn)?HAL_DAC_Start() 函數(shù)中包含了軟觸發(fā)轉(zhuǎn)換的代碼。所以在 HAL 庫中,建議的使用方法步驟為:初始化完成后,先使用 HAL_DAC_SetValue(); ,然后再使用 HAL_DAC_Start(); ,這樣的先后順序不管是使用上面的那種方式,都能夠正常輸出電壓值。
在平時使用中需要謹(jǐn)慎使用,因?yàn)槊恳淮涡薷妮敵鲭妷汉螅急仨毊a(chǎn)生一次觸發(fā)信號來使得 DAC 觸發(fā) 。
-
dac
+關(guān)注
關(guān)注
43文章
2309瀏覽量
191397 -
STM32
+關(guān)注
關(guān)注
2271文章
10923瀏覽量
357103 -
中斷
+關(guān)注
關(guān)注
5文章
900瀏覽量
41655 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
284瀏覽量
14915 -
CubeMx
+關(guān)注
關(guān)注
0文章
31瀏覽量
1361
發(fā)布評論請先 登錄
相關(guān)推薦
評論