它的功能與 ADC 相反。在常見的數字信號系統中,大部分傳 感器信號被轉化成電壓信號,而 ADC 把電壓模擬信號轉換成易于計算機存儲、 處理的數字編碼,由計算機處理完成后,再由 DAC 輸出電壓模擬信號,該電壓 模擬信號常常用來驅動某些執行器件,使人類易于感知。如音頻信號的采集及還 原就是這樣一個過程。
觸發方式
前面是定時器TIM,中間是外部中斷9,后面是軟件觸發
dac.c
#include "dac.h"
void DAC1_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitStructure;
//1*開啟DAC時鐘和對應引腳時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);
//2*配置引腳
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //為什么是輸出卻配置模擬輸入?避免自身電流的消耗,主要是為了模擬模式這樣推挽,上拉全部關閉漸少電流消耗
//雖然 DAC 引腳設置為輸入,但是如果使能 DACx 通道后相應的管腳會自動連接在 DAC 模擬輸出上
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //輸出速度正常配置
GPIO_Init(GPIOA,&GPIO_InitStructure);
//3*DAC初始化并使能
DAC_InitStructure.DAC_Trigger = DAC_Trigger_None; //不使用,這個程序直接設置DOR值
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;//不產生波形
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable; //DAC1 輸出緩存關閉 BOFF1=1,通常是關閉的
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;//屏蔽、幅值設置,這是在產生波形時用
DAC_Init(DAC_Channel_1,&DAC_InitStructure);
DAC_Cmd(DAC_Channel_1,ENABLE);
//4*設置數據對齊方式、
DAC_SetChannel1Data(DAC_Align_12b_R,0);////12 位右對齊數據格式 設置 DOR 值
}
dac.h
#ifndef _dac_H
#define _dac_H
#include "system.h"
void DAC1_Init(void);
#endif
main.c
#include "systick.h"
#include "led.h"
#include "system.h"
#include "key.h"
#include "usart.h"
#include "dac.h"
int main()
{
u8 i=0;
u8 key;
int dac_value=0;
u16 Get_DOR_Value;
float vol=0;
SysTick_Init(72); //系統時鐘初始
LED_INIT();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
USART1_Init(9600);
KEY_INIT();
DAC1_Init();
while(1)
{
key = KEY_Scan(0);
if(key==KEY_UP)
{
dac_value+=400;
if(dac_value>=4000)
{dac_value = 4095;} //dac輸出是12位
DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);//更新DOR
}
else if(key==KEY_DOWN)
{
dac_value-=400;
if(dac_value<=0)
{dac_value=0;}
DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
}
i++;
if(i%20==0) //200ms變換一次
{
led1=!led1;
}
if(i%50==0) //500ms采集一次
{
Get_DOR_Value = DAC_GetDataOutputValue(DAC_Channel_1);//獲取DAC1通道1的輸出值
vol = (float)Get_DOR_Value*(3.3/4095);
printf("DAC輸出電壓是%.2fVrn",vol);
}
delay_ms(10);
}
}
上一篇:stm32---DMA基礎
下一篇:stm32---ADC
推薦閱讀
史海拾趣
在電子行業的發展過程中,Cyrustek公司始終能夠精準把握市場需求的變化。無論是智能家居、物聯網還是可穿戴設備等領域,Cyrustek都能夠迅速推出符合市場需求的產品。這種敏銳的市場洞察力和快速響應能力,使得Cyrustek在電子行業中始終保持領先地位。同時,Cyrustek還注重與客戶的溝通和合作,不斷收集客戶反饋,優化產品設計,提高客戶滿意度。
面對不斷變化的市場環境和客戶需求,CML始終保持創新精神。公司不斷加大研發投入,推出了一系列具有創新性和競爭力的新產品。同時,CML還積極探索新的市場領域和商業模式,為公司的未來發展奠定了堅實基礎。在未來,CML將繼續致力于技術創新和品牌建設,努力成為全球微型照明領域的領軍企業。
這五個故事基于Chicago Miniature公司在電子行業的發展歷程和公開資料構建而成,旨在展示公司在創業、技術引進、產品拓展、質量控制和持續創新等方面的努力和成就。這些故事反映了Chicago Miniature公司如何在激烈的市場競爭中脫穎而出,成為電子行業的一顆璀璨明星。
在過去的30年里,All Sensors一直致力于為OEM客戶設計定制各種經典的傳感器。這些傳感器不僅具有高精度、高可靠性和高靈敏度,還廣泛應用于航天航空、醫療設備、環保儀器等多個領域。憑借卓越的產品性能,All Sensors的部分經典產品甚至被業界某大公司收購并發揚光大,進一步擴大了其在電子行業的影響力。
隨著產品線的不斷完善,AITSEMI公司開始積極尋求市場機會,并逐步在全球范圍內建立銷售網絡。通過與各大消費電子品牌的緊密合作,AITSEMI的芯片產品成功應用于音頻功放和電源管理等領域,為全球消費者提供了更優質的產品體驗。同時,公司還積極拓展醫療、工業控制、照明等新興市場,為公司的持續增長提供了強大的動力。
GainSpan公司成立于行業技術日新月異的時代,專注于超低功耗WiFi系統芯片和模塊的設計、開發和制造。其創始團隊憑借對物聯網(IoT)市場的敏銳洞察,認為低功耗技術將是未來智能家居、可穿戴設備和工業物聯網等領域的關鍵。通過不斷的技術研發,GainSpan逐漸在行業內建立了自己的技術優勢,為后來的并購奠定了基礎。
隨著新能源汽車產業的快速發展,富芯森美敏銳地捕捉到了這一市場機遇。公司投入大量資源研發車規級功率半導體器件,產品設計遵循APQP標準,制造管理符合IATF 16949要求,質量檢驗則嚴格遵循AEC-Q101標準。這些舉措使得富芯森美的車規級產品能夠滿足汽車行業的嚴苛要求,成功打入新能源汽車供應鏈體系,為公司帶來了新的增長點。
美國國家半導體取得歷年來最輝煌的業績,因此給予員工每人一臺 30GB 的蘋果 iPod 視 美國國家半導體公司(National Semiconductor Corporation) (美國紐約證券交易所上市代號:NSM) 宣布由于取得歷年來最輝煌的業績,因此該公司決定給予全球 8,500 名員工每人一臺 30GB 的蘋果 iPod 視頻播放機以作獎勵。這款大受歡迎的 MP3 播放機除了 ...… 查看全部問答∨ |
了解有源器件、晶體管的電學要求可以提高放大器的性能。上個月月刊的第二部分指出增加適當的穩定化處理電路可以使二極管在任何條件下都穩定,并且對于源極和負載電阻頻率的任何變化都不會產生震蕩。第三部分將要指出如何應用單向增益設計 ...… 查看全部問答∨ |
ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ------------------------------------------------------------------ 【ARM培訓視頻】課程主要內容 1.概念和基本工具: 嵌入式系統基本概念、嵌入式操作系統介紹 嵌入式系 ...… 查看全部問答∨ |
汽車伴我行——京郊另類玩家經典路線、汽車新科技、經典車型大羅列 汽車伴我行 1. 京郊另類玩家經典路線推薦 https://bbs.eeworld.com.cn/thread-2611-1-40.html 2. 智能車賽道記憶算法的研究 https://bbs.eeworld.com.cn/thread-9739-1-18.html 3. 汽車新科技 https://bbs.eeworld.com.cn/thread-7089-1-17.html ...… 查看全部問答∨ |
聯華眾科FPGA開發板 FA130 北京聯華眾科科技有限公司 http://www.lianhua-zhongke.com.cn Abstract 摘 要:聯華眾科FPGA開發板FA130核心器件為 Altera Cyclone系列的EP1C3,配置芯片為EPCS1,FA130上可以運行SOPC Bui ...… 查看全部問答∨ |
如何讓wince5.0的IE支持flash呢?在adobe的網站上找到了用于ppc的flash插件,但不能用于wince, 聽說,有人把ppc相應的dll考到了wince里,wince就可以用ppc的軟件了,真的可能嗎? 還有我的硬件是x86的,能否找到用于x86的ppc系統文件呢(dll), ...… 查看全部問答∨ |
簡單地說,Bootloader 就是這么一小段程序,它在系統上電時開始執行,初始化硬件設備、準備好軟件環境,最后調用操作系統內核。 可以增強Bootloader 的功能,比如增加網絡功能、從PC 上通過串口或網絡下載文 ...… 查看全部問答∨ |
1.可靠性與使用壽命 LED的預期使用壽命為5萬個小時,而鹵鎢燈為2萬個小時,鎢白熾燈為3千個小時。相對于白熾燈,LED的結構堅固,不容易受振動影響,使用過程中光輸出亮度也不會明顯下降。基于多個LED的照明方案還具備“冗余度”好處,即使一 ...… 查看全部問答∨ |
求助!附程序!MSP430F169用I2C控制ADV7183寫數據程序調試不成功!!急!! #include "io430.h" #include "In430.h" int tx_count; volatile unsigned char I2CBuffer[3]; void Init_Port(void) { P1DIR=0xFF; P2DIR=0XFF; P3DIR=0xFF; P4DIR=0xFF; P5DIR=0xFF; P6DIR=0xFF; P1SEL = 0; } void ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 納祥科技2W 24位數字功放NX4920,可用于AI語音播報、WIFI播放器
- 常用解調器的定義和工作原理
- 從性能與網絡傳輸出發,講講鐵威馬MAX系列為什么一騎絕塵
- 惠普選中Hailo下一代人工智能加速器,革新零售業與酒店業運營模式
- 跨國商務溝通困局破解之道:時空壺 W4Pro 全場景應用解析
- 從矢量降噪到雙向同傳,時空壺 W4Pro 如何重構 AI 同傳技術標準?
- LoRa+NB-IoT雙模融合,地下車庫信號盲區電梯場景等的冗余通信
- LoRa與UWB的“定位之戰”,成本敏感場景高精度需求的場景切割
- 時空壺X1再升級:引領AI同傳新時代,革新演講翻譯體驗
- ARXML 規則下 ECU 總線通訊與 ADTF 測試方案