天天看點

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

文章目錄

  • 1.DAC輸出
    • 1.1 DAC簡單介紹
    • 1.2 DAC主要特點、功能和輸出公式
    • 1.3 工程配置
    • 1.4 代碼編寫
    • 1.5 電路圖和實物連接配接
    • 1.6 現象觀測
  • 2.PWM DAC實驗
    • 2.1 PWM DAC簡單介紹
    • 2.2 PWM DAC實作

1.DAC輸出

1.1 DAC簡單介紹

上面,我們介紹了 STM32F4 的 ADC 使用,在此将介紹 STM32F4 的 DAC功能。

來自原子哥STM32開發指南HAL庫版本。

STM32F4 的 DAC 子產品(數字/模拟轉換子產品)是 12 位數字輸入,電壓輸出型的 DAC。DAC可以配置為 8 位或 12 位模式,也可以與 DMA 控制器配合使用。 DAC 工作在 12 位模式時,資料可以設定成左對齊或右對齊。 DAC 子產品有 2 個輸出通道,每個通道都有單獨的轉換器。在雙 DAC 模式下, 2 個通道可以獨立地進行轉換,也可以同時進行轉換并同步地更新 2 個通道的輸出。 DAC 可以通過引腳輸入參考電壓 Vref+(通 ADC 共用) 以獲得更精确的轉換結果。

1.2 DAC主要特點、功能和輸出公式

① 2 個 DAC 轉換器:每個轉換器對應 1 個輸出通道

② 8 位或者 12 位單調輸出

③ 12 位模式下資料左對齊或者右對齊

④ 同步更新功能

⑤ 噪聲波形生成

⑥ 三角波形生成

⑦ 雙 DAC 通道同時或者分别轉換

⑧ 每個通道都有 DMA 功能

當 DAC 的參考電壓為 Vref+的時候, DAC 的輸出電壓是線性的從 0~Vref+, 12 位模式下 DAC 輸出電壓與 Vref+以及 DORx 的計算公式如下:

DACx 輸出電壓=Vref ×(DORx/4095)

1.3 工程配置

開啟DAC1和ADC1_IN1。保持預設配置。

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗
STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

開啟序列槽1。

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

1.4 代碼編寫

重寫printf函數:
#include “stdio.h”
int fputc(int c,FILE *stream)
{
	uint8_t ch[1]={c};
	HAL_UART_Transmit(&huart1,ch,1,0xFFFF);
	return c;
}
while:
		HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,4095);
		HAL_Delay(10);
		HAL_ADC_Start(&hadc1);
		uint16_t Value=HAL_ADC_GetValue(&hadc1);
		HAL_Delay(10);
		printf("Value = %d\r\n",Value);
		HAL_Delay(200);
           

1.5 電路圖和實物連接配接

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗
STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

P12 是多功能端口,我們隻需要通過跳線帽短接 P14 的 ADC 和 DAC,就可以開始做實驗了。

1.6 現象觀測

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

但通過電壓表測量可以發現确實輸出電壓受輸出值的調制。實驗結果沒錯。

STM32 CubeMx(五)DAC輸出和PWM DAC實驗1.DAC輸出2.PWM DAC實驗

2.PWM DAC實驗

上面介紹了 STM32F4 自帶 DAC 子產品的使用,但有時候,可能兩個 DAC 不夠

用,此時,我們可以通過 PWM+RC 濾波來實一個 PWM DAC。在此将向大家介紹如何使用 STM32F4 的 PWM 來設計一個 DAC。

來自原子哥STM32開發指南HAL庫版本。

2.1 PWM DAC簡單介紹

有時候, STM32F4 自帶的 2 路 DAC 可能不夠用,需要多路 DAC,外擴 DAC 成本又會高不少。此時,我們可以利用 STM32F4 的 PWM+簡單的 RC 濾波來實作 DAC 輸出,進而節省成本。 在精度要求不是很高的時候, PWM+RC 濾波的 DAC 輸出方式,是一種非常廉價的解決方案。

2.2 PWM DAC實作

個人感覺和PWM控制占空比輸出電壓差不多。

本人在這篇部落格中記錄了PWM輸出的内容。

STM32應用(一)控制舵機SG90/MG996R/數字舵機

繼續閱讀