历史上的今天
返回首页

历史上的今天

今天是:2025年01月06日(星期一)

正在发生

2020年01月06日 | STM32的DAC深入探究之一

2020-01-06 来源:eefocus

1、简述:


12位数字输入,电压输出,DAC可以配置为8位或12位模式。有2个输出通道。在双DAC模式下,两个通道可以独立地工作。


特殊功能: 噪声波形生成,三角波形生成,外部触发转换,双DAC同时或者分别转换;每个通道都有DMA功能;


参考电压:2.4V~ 3.3V


因为一旦使能DAC通道,那么相应的GPIO便自动地连接到DAC转换器,因此,模拟输出前应该设置成模拟输入,目的是避免寄生的干扰和额外的功耗;


2、函数介绍:


(1)缺省函数


DAC_Init();


(2)DAC_Init(DAC_Channel_1,&DAC_InitStructure);初始化函数


DAC_InitTypeDef            DAC_InitStructure;


初始化的设置有四个:


❶DAC_Trigger:指定所选DAC的触发源,有9个触发源可以选择:


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是否产生噪声波形,三角波或者不产生以上波形


DAC_WaveGeneration_None


DAC_WaveGeneration_Noise


DAC_WaveGeneration_Triangle


❸DAC_LFSRUnmask_TriangleAmplitude:如果选择了产生噪声波形或者三角波,那么这里可以选择噪声波形的LFSRUnMask屏蔽位(不晓得是什么东西) 或者三角波的最大幅度


❹DAC_OutputBuffer:指定输出是否要缓冲一下


DAC_OutputBuffer_Enable


DAC_OutputBuffer_Disable


(3)DAC_Cmd(DAC_Channel_1,EANBLE); DAC通道使能函数


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


(5)DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);软件触发使能函数,一般单通道时候使用


(6)DAC_DualSoftwareTriggerCmd(ENABLE);如果要同时控制两个DAC通道,那么就要使能此函数


(7)DAC_Wave GenerationCmd(DAC_Channel_1, DAC_Wave_Noise, ENABLE);波形发生使能函数,可以选择哪个通道以及噪声或者三角波波形


(8)DAC_SetChannel1Data(DAC_Align_12b_R, 0x500);


选择通道1的数据位数和对齐方式,以及具体输出值。三种对齐数据位方式:


DAC_Align_12b_R  12位右对齐,数值小于4096


DAC_Align_12b_L 12位左对齐,数值小于0XxFFF0


DAC_Align_8b_R 8位右对齐,数值小于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); 得到当前DAC输出的值


3、具体应用:


3.1 产生一个直流电压:


GPIOA_04 是DAC1 , GPIOA_05 是DAC2


1、设置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的时钟。注意GPIOA的时钟是在APB2,而DAC的时钟则是在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的触发输出,当产生波形时可用定时器触发


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);//我的板子实际输出的是3.265v

推荐阅读

史海拾趣

Arima Lasers Corp公司的发展小趣事

Arima Lasers Corp深知人才是企业发展的核心驱动力。因此,公司高度重视人才培养和团队建设。通过制定完善的培训计划和激励机制,公司吸引了一批批优秀的研发人才和管理人才。这些人才为公司的发展注入了源源不断的动力,推动了公司在技术、市场和管理等各个方面的全面提升。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

HM International公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,任何与电视机连接的网络终端设备均可视为机顶盒,其发展历程涵盖了从模拟频道增补器到数字卫星、地面及有线电视机顶盒的广泛范畴。而从狭义角度看,机顶盒特指那些具备数字处理能力的设备,如IPTV机顶盒、DVB-S卫星机顶盒、DVB-T地面机顶盒及DVB-C有线电视机顶盒等。

机顶盒的核心功能在于接收并转换数字电视信号,使之能在传统或智能电视上播放。它不仅能接收来自有线电缆、卫星天线及宽带网络的信号,还能提供电子节目指南、网页浏览等增值服务。通过机顶盒,用户能够享受到高清乃至4K超高清的电视节目,体验更为细腻的画面和震撼的音效。此外,机顶盒还具备网络交互能力,支持在线购物、观看网络视频、玩游戏等多元化活动,使电视机从单向接收信息的设备转变为智能互动终端。

随着技术的不断进步,机顶盒正朝着高清化、智能化方向发展。未来,机顶盒将不仅限于基本的信号接收与解码功能,还将融入更多智能推荐、语音识别等先进技术,为用户提供更加个性化、便捷的娱乐体验。总之,机顶盒作为连接电视与互联网的桥梁,正以其丰富的功能和广泛的应用场景,不断满足用户日益增长的娱乐需求。

BOOKHAM公司的发展小趣事

BOOKHAM公司深知人才是企业发展的核心。因此,公司一直致力于引进和培养高素质的人才。通过与高校和研究机构的合作,公司吸引了大批优秀的科研人员和工程师加入。同时,公司还建立了完善的培训体系,为员工提供持续的学习和发展机会。这些措施使得BOOKHAM公司拥有一支技术实力强大、富有创新精神的人才队伍,为公司的发展提供了有力保障。

Electrolube公司的发展小趣事

在电子行业的激烈竞争中,Electrolube公司始终坚持以客户需求为导向,不断创新和拓展产品线。除了UVCL涂层外,公司还推出了一系列树脂、涂料和热管理解决方案的产品组合,为EV电池提供全面保护。

这些产品不仅具有优异的性能表现,而且能够满足不同客户的需求。例如,某些产品具有优异的耐高温性能,适用于高温环境下的电子设备;而另一些产品则具有出色的耐化学腐蚀性能,能够在恶劣的工作环境中保持稳定的性能。

Electrolube公司通过不断的技术创新和产品优化,成功拓展了市场份额,并在电子行业中树立了良好的品牌形象。同时,公司还积极与各大汽车制造商合作,共同推动电动汽车产业的发展。

爱特姆(ATOM)公司的发展小趣事

爱特姆科技自在美国德克萨斯州休斯顿市成立以来,便致力于电子行业的创新与发展。1998年,公司成功创立了“ATOM”品牌,标志着其正式踏入了品牌化发展的道路。起初,爱特姆以台湾、深圳、昆山为主要研发生产基地,凭借对技术的不断追求和对市场的敏锐洞察,逐渐在连接器领域取得了突破。

问答坊 | AI 解惑

为增加人气,发份电子厂商名录

为增加人气,发份电子厂商名录,收费附件,注册就好下。 厂商名称,EMAIL地址,先看看会有多少人想要,才会发重点部分,所有数据都是辛苦收集来的,仅供找工作时备用。…

查看全部问答>

PADS Layout 覆铜问题

PADS Layout在灌铜时,能不能自动把死铜去掉呢?有没有自动去掉死铜这个功能?…

查看全部问答>

急!windows自带的超级终端和DNW串口工具的区别

一个简单的串口通信实验:先通过串口发送一行字符串“hell,please input your char:”到pc机上,然后用户在PC键盘上随意按下键值,开发板在串口读取这个键值,并且将所读取到的键值回发给PC机显示。PC端我用超级终端和DNW串口工具都试了一次,但结 ...…

查看全部问答>

请教下GPSONE指令的开发

我现在用的是CDMA模块, 要开发一系列的GPSONE指令, 其中有设置定位精度门限AT+QOSTH,要求如下: 语法: AT+QOSTH=threshold - threshole: 为0~255之间的数字,定位精度的最低门限。 结果: 如果设置正确,返回OK,如下: OK 如果设置失败 ...…

查看全部问答>

提供基于Vxworks的各种PowerPC平台(MPC82XX/MPC85XX/MPC7448/AMCC440GX等)

Beijing Freesense是专业PowerPC设计公司,提供基于Vxworks和Liunx的各种PowerPC平台(MPC82XX/MPC85XX/MPC7448/AMCC440GX等),提供设计开发服务。Tel: 010-82790138、13501394847,zhytang@freesense.com.cn…

查看全部问答>

S3C6410 IIC驱动问题

s3c6410_iic.dll 文件可以被加载,也生成了IIC0设备,但是IIC_Init()函数里的打印信息没有输出来: DEBUGMSG(1,(TEXT(\"+IIC_Init\\r\\n\"))); 打开IIC0设备进行操作也没有信号丛SCL与SDA输出。 为什么驱动被加载了,但没有跑IIC_Init()函数 ...…

查看全部问答>

PDA的FLASH坏了,换FLASH怎么烧写?

我的PDA 宏基N300 flash坏了,开机死在BOOT画面,重新用SD卡刷机也能刷过,但是还是死在BOOT画面,换好机器的FLASH能好,现在想换片新的FLASH,请问各位怎么烧写? 目前的文件有: EBOOT.bin EBOOT.nb0 flash.dio superipl.nb0 以上这几个文件是拷入S ...…

查看全部问答>

关于学习嵌入式的为题

各位高手请指点一下:我刚刚毕业,在学校接触过嵌入式的一些东西,但学的相当有限。现在想要学习嵌入式,我应该从何入手?如果我打算从事嵌入式方面的工作,我有没有参加“嵌入式培训”必要?另外,那些培训机构比较好?谢谢,各位热心人!…

查看全部问答>

非可屏蔽中断的处理

大家好!一直用的网上的MSP430的程序框架写程序,程序的最后有一段是关于非可屏蔽中断的。程序如下: /***************************************************************************** 不可屏蔽中断函数 ************************************ ...…

查看全部问答>