日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1、簡述:12位數(shù)字輸入,電壓輸出,DAC可以配置為8位或12位模式。有2個(gè)輸出通道。在雙DAC模式下,兩個(gè)通道可以獨(dú)立地工作。特殊功能:噪聲波形生成,三角波形生成,外部觸發(fā)轉(zhuǎn)換,雙DAC同時(shí)或者分別轉(zhuǎn)換;每個(gè)通道都

1、簡述:

12位數(shù)字輸入,電壓輸出,DAC可以配置為8位或12位模式。有2個(gè)輸出通道。在雙DAC模式下,兩個(gè)通道可以獨(dú)立地工作。

特殊功能:噪聲波形生成,三角波形生成,外部觸發(fā)轉(zhuǎn)換,雙DAC同時(shí)或者分別轉(zhuǎn)換;每個(gè)通道都有DMA功能;

參考電壓:2.4V~ 3.3V

因?yàn)橐坏┦鼓蹹AC通道,那么相應(yīng)的GPIO便自動(dòng)地連接到DAC轉(zhuǎn)換器,因此,模擬輸出前應(yīng)該設(shè)置成模擬輸入,目的是避免寄生的干擾和額外的功耗;

2、函數(shù)介紹:

(1)缺省函數(shù)

DAC_Init();

(2)DAC_Init(DAC_Channel_1,&DAC_InitStructure);初始化函數(shù)

DAC_InitTypeDef DAC_InitStructure;

初始化的設(shè)置有四個(gè):

?DAC_Trigger:指定所選DAC的觸發(fā)源,有9個(gè)觸發(fā)源可以選擇:

DAC_Trigger_None

DAC_Trigger_T6_TRGO

DAC_Trigger_T8_TRGO

DAC_Trigger_T7_TRGO

DAC_Trigger_T5_TRGO

DAC_Trigger_T2_TRGO

DAC_Trigger_T4_TRGO

DAC_Trigger_Ext_IT9

DAC_Trigger_Software

?DAC_WaveGeneration :指定DAC是否產(chǎn)生噪聲波形,三角波或者不產(chǎn)生以上波形

DAC_WaveGeneration_None

DAC_WaveGeneration_Noise

DAC_WaveGeneration_Triangle

?DAC_LFSRUnmask_TriangleAmplitude:如果選擇了產(chǎn)生噪聲波形或者三角波,那么這里可以選擇噪聲波形的LFSRUnMask屏蔽位或者三角波的最大幅度

?DAC_OutputBuffer:指定輸出是否要緩沖一下

DAC_OutputBuffer_Enable

DAC_OutputBuffer_Disable

(3)DAC_Cmd(DAC_Channel_1,EANBLE); DAC通道使能函數(shù)

(4)DAC_DMACmd(DAC_Channel_1,ENABLE);如果要用到DMA到DAC那么就要使能哪個(gè)DAC通道

(5)DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);軟件觸發(fā)使能函數(shù),一般單通道時(shí)候使用

(6)DAC_DualSoftwareTriggerCmd(ENABLE);如果要同時(shí)控制兩個(gè)DAC通道,那么就要使能此函數(shù)

(7)DAC_Wave GenerationCmd(DAC_Channel_1, DAC_Wave_Noise, ENABLE);波形發(fā)生使能函數(shù),可以選擇哪個(gè)通道以及噪聲或者三角波波形

(8)DAC_SetChannel1Data(DAC_Align_12b_R, 0x500);

選擇通道1的數(shù)據(jù)位數(shù)和對(duì)齊方式,以及具體輸出值。三種對(duì)齊數(shù)據(jù)位方式:

DAC_Align_12b_R12位右對(duì)齊,數(shù)值小于4096

DAC_Align_12b_L12位左對(duì)齊,數(shù)值小于0XxFFF0

DAC_Align_8b_R8位右對(duì)齊,數(shù)值小于256

(9)DAC_SetChannel2Data(DAC_Align_12b_L, 0x8880);同理(8)

(10)DAC_SetDualChannelData(DAC_Align_8b_R, 0x40, 0xF1);同理(8)

(11)u16 DataValue;

DataValue = DAC_GetDataOutputValue(DAC_Channel_1);得到當(dāng)前DAC輸出的值

3、具體應(yīng)用:

3.1產(chǎn)生一個(gè)直流電壓:

GPIOA_04是DAC1 , GPIOA_05是DAC2

1、設(shè)置GPIOA_04或05為模擬輸入;

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure)

2、開啟GPIOA和DAC的時(shí)鐘。注意GPIOA的時(shí)鐘是在APB2,而DAC的時(shí)鐘則是在APB1

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

3、配置DAC輸出直流電壓

DAC_InitTypeDef DAC_InitStructure;

DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;//選擇DAC的觸發(fā)輸出,當(dāng)產(chǎn)生波形時(shí)可用定時(shí)器觸發(fā)

DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

DAC_Init(DAC_Channel_1, &DAC_InitStructure);

DAC_Cmd(DAC_Channel_1, ENABLE);

DAC_SetChannel1Data(DAC_Align_12b_R,4095);


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉