1. 程式人生 > >STM32F0xx_DAC輸出電壓配置詳細過程

STM32F0xx_DAC輸出電壓配置詳細過程

前言

數模轉換DAC的功能在現實應用中所佔的分量,相對定時器TIM、串列埠USART等要小的多,這也是ST為什麼內部整合DAC模組相對來說不是那麼多的原因。但在有需要使用數模轉換功能的專案中,自帶的這個DAC模組基本上可以取代外掛一片DAC晶片,因為自帶的這個模組功能也很強大,只需要簡單的配置一下就可以輸出指定的電壓訊號(如:PWM波形、三角波、正選波),中途無需要軟體干預。當然,今天提供的軟體工程只有輸出電壓的基本操作,沒有輸出特殊的波形。但是,當你瞭解輸出電壓的原理之後,以後你想輸出這些特殊的波形,也就容易多了。

STM32F0系列的DAC功能大部分是單通道,相對比較簡單。只有STM32F072系列晶片是兩路輸出通道、有DAC控制單元輸出三角波形等。

今天主要是總結DAC輸出電壓基本操作。輸出三角波、正選波相對複雜一點的功能後期整理一份,敬請等待。

本著免費分享的原則,如果你覺得分享的內容對你有用,認可我分享的文章,就請用微信搜尋“EmbeddDeveloper” 或者掃描下面二維碼、關注,還有更多精彩內容等著你。

 

下載

ST標準外設庫和參考手冊、資料手冊等都可以在ST官網下載,你也可以到我的360雲盤下載。關於F0系列晶片的參考手冊有多個版本(針對F0不同晶片),但有一個通用版本,就是“STM32F0x128參考手冊V8(英文)2015-07”建議參考該手冊,以後如果你換用一種型號晶片也方便了解。

今天的軟體工程下載地址(360雲盤):

STM32F0xx的資料可以在我360雲盤下載:

準備工作

今天總結的軟體工程是基於“TIM基本延時配置詳細過程”修改而來,因此需要將該軟體工程下載準備好。開啟軟體工程,新建源程式檔案(dac.c 和 dac.h),在工程中新增新建的源程式檔案dac.c和使用到標準外設庫stm32f0xx_dac.c。新增的原始碼響應的原始檔程式碼就OK了。

數模轉換原理

從系統框圖中可以看的出,這個控制單元相對比較簡單,所以軟體在操作的這些暫存器的時候也是相對較簡單的。

文章開頭說了DAC可以輸出指定的電壓訊號(如:PWM波形、三角波、正選波),其實這些訊號產生的原理很簡單,就是使用定時器來觸發DAC輸出,訊號幅度需要用特定的演算法生成(更加專案需求而定)。當然,今天提供的工程是固定輸出一個電壓訊號,只需配置輸出值就行了。

 

配置過程詳情

①RCC時鐘


該函式位於bsp.c檔案下面;

我個人習慣第一步配置時鐘,ST官方提供的例程也是把配置時鐘放在前面。關於RCC時鐘的配置比較重要,有好幾次我就是由於忘記配置相應RCC時鐘,讓我找了很久的問題,最後才發現是RCC時鐘沒有配置。

注意:

外設時鐘不要隨便新增,比如:RCC_APB1外設不要配置在RCC_APB2時鐘裡面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);這樣能編譯過,但是錯誤的

我每次都提醒RCC時鐘,是因為很多人就是因為時鐘而導致軟體執行有問題,所以,提醒更多人要注意配置RCC.

②DAC輸出引腳配置


該函式位於dac.c檔案下面;

注意:

這裡引腳PA4配置是針對輸出通道而定,必須匹配才行(請看資料手冊中的引腳說明)。F0晶片中只有STM32F072才有兩個通道,也就是隻有它才能配置PA5。

③DAC輸出配置


該函式位於dac.c檔案下面;

重點注意:

這裡紅色標記三項都需要注意,特別的產生波形這一個引數,只有F0晶片中只有STM32F072才能是別的值,其他晶片都是固定這個引數。同樣,通道也是。

④輸出電壓的計算


該函式位於dac.c檔案下面;

由於F0晶片的參考電壓固定為VDD,不像其他型號可以使用外部參考電壓,所以這裡的計算方式中3.3就是參考電壓的值,4096212次方。不懂的請自行想一下哦。

說明

或許你硬體晶片不是提供工程裡面的晶片,但是STM32F0的晶片軟體相容性很好,可以適用於F0其他很多型號的晶片,甚至是F2、F4等晶片上(具體請看手冊、或者親自測試)。

今天的工程是基於工程“STM32F0xx_TIM基本延時配置詳細過程”修改而來,以上例項總結僅供參考,若有不對之處,敬請諒解。

最後

如果你喜歡我分享的內容,你又想了解更多相關內容,請關注文章開頭的微信公眾號,新內容持續更新中,後期將會有更多精彩內容出現。

閱讀原文

相關推薦

STM32F0xx_DAC輸出電壓配置詳細過程

前言 數模轉換DAC的功能在現實應用中所佔的分量,相對定時器TIM、串列埠USART等要小的多,這也是ST為什麼內部整合DAC模組相對來說不是那麼多的原因。但在有需要使用數模轉換功能的專案中,自帶的這個DAC模組基本上可以取代外掛一片DAC晶片,因為自帶的這個模組功能也很強

OpenCV3.4.2+VS2015安裝配置詳細過程

環境配置 本文是OpenCV3.4.2 在VS2015下的配置過程,用的是WIN10系統 基於opencv的配置有兩種 一是靜態的配置   二是用CMake的動態連結庫配置   OpenCV3.4.2官方下載  8月29日已更新至3.4.2版

Ubuntu下redis資料庫的安裝和配置詳細過程

Redis 安裝 當前redis最新穩定版本是4.0.9 tar xzf redis-4.0.9.tar.gz step3:移動,放到usr/local目錄下 sudo mv ./redis-4.0.9 /usr/local/redi

STM32F0xx_看門狗(獨立+視窗)配置詳細過程

Ⅰ、概述 對於看門狗,我覺得做微控制器或者嵌入式開發的人員來說並不陌生,今天總結STM32F0看門狗的功能,F0的看門狗有兩種:獨立和視窗看門狗。 今天提供兩種看門狗的軟體工程例項,供大家下載。 兩種看門狗各有各的特點,應用在不同的場合,下面將分別簡單總結一下獨立和視窗看門

STM32F0xx_GPIO配置詳細過程

前言 對於初學STM32的人來說,很多基礎的知識沒有掌握,這些基礎知識就成為阻擋他們入門的門檻。因此,今天也把基礎的知識分享出來,帶領那些還沒有邁過這個門檻的人入門。 今天總結“GPIO配置詳細”,以F0標準外設庫初始化結構體來重點講解。接著昨天“新建軟體工程詳細過程”來進

STM32F0xx_RTC實時時鐘配置詳細過程

Ⅰ、概述 今天總結RTC(Real Time Clock)實時時鐘相關的知識,順帶將BKP簡單總結一下。 STM32的RTC模組和時鐘配置系統(RCC_BDCR暫存器)處於後備區域,即在系統復位或從待機模式喚醒後, RTC的設定和時間維持不變。 STM32F0的RTC模組和

Mac配置Hadoop最詳細過程

pan alt agen mage 設置 apach 兩個 login class 一.準備工作: 1. JDK1.7版本及以上(貌似Hadoop只支持1.6以上的版本,不確定,保險起見用1.7,我自己用的是1.8) 2. 2.7.3版本的Hadoop https://

ubuntu16.04上安裝配置DHCP服務的詳細過程

exists sys support asi running 存在 type enca maintain DHCP服務器是為客戶端機器分配IP地址的,所有分配的IP地址都保存在DHCP服務器的數據庫中。為了在子網中實現DHCP分配IP地址,需要在目標主機上安裝配置DHCP服

docker安裝配置gitlab詳細過程 docker安裝配置gitlab詳細過程

docker安裝配置gitlab詳細過程     獲取映象 1、方法一 1

centos安裝配置hadoop超詳細過程【轉】

轉自:http://www.centoscn.com/image-text/install/2014/1121/4158.html 1、叢集部署介紹 1.1 Hadoop簡介           Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統

Ubuntu16.04 安裝 CUDA、CUDNN、OpenCV 並用 Anaconda 配置 Tensorflow 和 Caffe 詳細過程

1.配置環境 2.安裝顯示卡驅動、CUDA 和 CUDNN 在Ubuntu系統中的 System Settings -> Software & Updates -> Additional Drivers 安裝相應的顯示卡和C

vue配置全域性less變數/方法 詳細過程

核心:sass-resources-loader元件 實現過程如下: 1.安裝 npm i sass-resources-loader -S 2.修改配置檔案build/utils.js 2.1 在cssLoaders中新增如下程式碼: // 全域性less變

docker安裝配置gitlab詳細過程

com 帳戶 mkdir -p lpad start 臨時 一段 resp oot 獲取鏡像 1、方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2、方法二如果服務器網路不好或者pul

使用Jenkins郵件配置在郵件中輸出測試執行詳細結果

Jenkins的郵件配置還是比較人性化的,提供了很多令牌供使用者獲取特定的內容並輸出。如:  •     ${BUILD_NUMBER} -顯示當前構建的編號。 •     ${BUILD_STATUS} -顯示當前構建的狀態(失敗、成功等等) •     ${BUILD_

Nginx下配置Https證書詳細過程

一、Http與Https的區別HTTP:是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。HTTPS:是以安全為目標的HTTP通道,簡單講是HT

centos安裝配置hadoop超詳細過程

1、叢集部署介紹 1.1 Hadoop簡介           Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統(HDFS,Hadoop Distributed Filesystem)和MapRedu

Webpack安裝配置及打包詳細過程

引言 前端經過漫長的發展,湧現出了很多實踐方法來處理複雜的工作流程,讓開發變得更加簡便,其中,模組化可以使複雜的程式細化成為各個小的檔案,而webpack並不強制你使用某種模組化方案,而是通過相容所有模組化方案讓你無痛接入專案,本文詳細介紹webpack安裝配置及打包的詳細過程。 Webpack簡單介紹

redis配置詳細解析

keep turn name sort out 配置文件 trac lte eid # redis 配置文件示例 # 當你需要為某個配置項指定內存大小的時候,必須要帶上單位, # 通常的格式就是 1k 5gb 4m 等: # # 1k => 1000 bytes

linux環境下部署zabbix3.2、模板、郵件告警詳細過程

-1 ice erer without zlib zip ever native item 服務端部署: 系統環境及軟件版本: Linux:release 6.3 zabbix:zabbix-3.2.5.tar.gz nginx:nginx-1.12.0.tar.gz ph

Mysql安裝詳細過程,tar方式

mysql安裝1、創建mysql用戶和mysql用戶組 groupadd mysql useradd -r -g mysql mysql2、 到我的共享網盤下載mysql-5.7.17程序包 鏈接:http://pan.baidu.com/s/1gfAA87p 密碼:iuti3、拷貝下