历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2020年04月23日 | STM32DAC讲解及代码示例

2020-04-23 来源:eefocus

DAC转换

STM32的DAC模块主要特点有:

① 2个DAC转换器:每个转换器对应1个输出通道

② 8位或者12位单调输出

③ 12位模式下数据左对齐或者右对齐

④ 同步更新功能

⑤ 噪声波形生成

⑥ 三角波形生成

⑦ 双DAC通道同时或者分别转换

⑧ 每个通道都有DMA功能

DAC_OUT1 ->PA4

DAC_OUT2 ->PA5

在这里插入图片描述

DAC配置步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序代码示例:

//DAC通道1输出初始化

void Dac1_Init(void)

{

  

GPIO_InitTypeDef GPIO_InitStructure;

DAC_InitTypeDef DAC_InitType;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );   //使能PORTA通道时钟

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );   //使能DAC通道时钟 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;  // 端口配置

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;   //模拟输入

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_SetBits(GPIOA,GPIO_Pin_4) ;//PA.4 输出高

DAC_InitType.DAC_Trigger=DAC_Trigger_None; //不使用触发功能 TEN1=0

DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波形发生

DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//屏蔽、幅值设置

DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable ; //DAC1输出缓存关闭 BOFF1=1

    DAC_Init(DAC_Channel_1,&DAC_InitType);  //初始化DAC通道1

DAC_Cmd(DAC_Channel_1, ENABLE);  //使能DAC1

  

    DAC_SetChannel1Data(DAC_Align_12b_R, 0);  //12位右对齐数据格式设置DAC值

}

//设置通道1输出电压

//vol:0~3300,代表0~3.3V

void Dac1_Set_Vol(u16 vol)

{

float temp=vol;

temp/=1000;

temp=temp*4096/3.3;

DAC_SetChannel1Data(DAC_Align_12b_R,temp);//12位右对齐数据格式设置DAC值

}

推荐阅读

史海拾趣

Delus Corp公司的发展小趣事

Delus Corp公司起源于一家小型电子初创企业,专注于研发和生产特定领域的电子设备。在公司成立初期,团队面临资金短缺和技术挑战等重重困难。然而,他们凭借对技术的执着追求和对市场的敏锐洞察,成功研发出一款具有创新性的电子产品,该产品在市场上引起了广泛关注。这款产品不仅帮助公司获得了初始资金,也奠定了公司在电子行业的技术领先地位。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

为了降低生产成本、提高生产效率,Delus Corp公司不断优化供应链管理。公司建立了完善的供应链管理系统,实现了从原材料采购、生产制造到产品销售的全程监控和管理。同时,公司还与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量的可靠性。这些措施的实施,使得公司的运营成本得到了有效降低,生产效率得到了显著提升。

Gardner Denver公司的发展小趣事

为了降低生产成本、提高生产效率,Delus Corp公司不断优化供应链管理。公司建立了完善的供应链管理系统,实现了从原材料采购、生产制造到产品销售的全程监控和管理。同时,公司还与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量的可靠性。这些措施的实施,使得公司的运营成本得到了有效降低,生产效率得到了显著提升。

DPA Components International公司的发展小趣事

作为一家具有社会责任感的企业,DPA Components International公司始终关注社会公益事业。公司积极参与各种公益活动,如扶贫助学、环保行动等,为社会做出了积极贡献。此外,DPA还关注行业发展和社会进步,积极参与行业交流和合作,推动整个电子行业的健康发展。通过担当社会责任,DPA不仅提升了企业的社会形象,也为社会的进步和发展做出了积极贡献。

达晶微(CREATEK)公司的发展小趣事

达晶微(CREATEK)公司成立于XXXX年,由一群具有丰富半导体行业经验的专家创立。公司初期主要专注于IGBT、MOSFET、FRD、TVS、SBD等功率半导体芯片与器件的研发。凭借其对技术的深刻理解和市场需求的敏锐洞察,达晶微迅速在市场中崭露头角。

GeneSiC公司的发展小趣事

达晶微注重企业文化建设和团队建设。公司倡导创新、协作、务实、进取的企业精神,鼓励员工勇于挑战、追求卓越。同时,公司还建立了完善的培训体系和人才激励机制,为员工提供了广阔的发展空间和良好的职业前景。这些措施有效地激发了员工的工作热情和创造力,为公司的发展注入了源源不断的动力。

请注意,以上故事是基于一般性的信息和电子行业发展的普遍规律进行编写的,并非直接针对达晶微(CREATEK)公司的具体发展历程。如需了解更多详细信息,建议您查阅达晶微(CREATEK)公司的官方网站或相关新闻报道。

问答坊 | AI 解惑

四层电路板的PCB设计

作者:韩洁琼 曾碧 余永权 李 泰    来源:单片机及嵌入式系统应用 发表时间:2007-07-19 摘要 详细介绍有关电路板的PCB设计过程以及应注意的问题。在设计过程中针对普通元器件及一些特殊元器件采用不同的布局原则;比较手工布线、自 ...…

查看全部问答>

lpc1114 ADC 转换实例测试!!图片

下午弄啦下ADC 转换的部分 , 现将结果发下图片!!!!  共同交流!!!!,共同学习!!!   …

查看全部问答>

一个CAB安装包能不能实现安装完后接着自动运行一个EXE文件啊?

请问一个CAB安装包能不能实现安装完后接着自动运行一个EXE文件啊?EXE文件是外部调用的,比如是和CAB文件同一目录里…

查看全部问答>

几个ATMega的入门问题

本人初学单片机,很多东西不懂,望大侠们帮我解答以下几个问题,多谢. 1.请问什么软件能把用ICCAVR写好的程序烧录进EEPROM ? 2.板子上有一个6针脚的长方形接口,估计就是传说中的USART(串口)吧,烧录前是不是用串口线连接电脑的串口和板子上的这个 US ...…

查看全部问答>

数字游标卡尺什么原理?

好像里面有个专门的芯片?那这个芯片是怎么工作怎么知道长度的呢?…

查看全部问答>

请教一个控件显示的问题

我用evc做了一个基于对话框的程序,其中用到了自己编的一个图形控件。用模拟器运行,在对话框切换的时候(模式对话框DoModal()),有控件的地方还是显示上一个对话框的内容,请问哪位大虾遇到过这种情况?是不是所编控件的原因?如何把上一个对话框 ...…

查看全部问答>

GPIO接口模拟成SPI驱动开发

SPI驱动是将GPIO接口模拟成SPI?驱动应该怎么写,是不是和写GPIO驱动一样?…

查看全部问答>

问几个windows文件过滤驱动得问题

1 文件过滤驱动捕获文件操作之后,如何能够从驱动立刻通知应用程序知道呢? 比如,杀毒软件得实施监控,能够立刻让界面之后某个程序被用户打开了 我想让我得驱动捕获到读和写得时候立刻通知应用程序知道 2 文件过滤驱动,捕获到写请求得时候 应用 ...…

查看全部问答>

CE6 RIL 不加载的问题

代朋友咨询这个问题。 他把RIL的mdd代码从public移到自己bsp的driver下面,然后把PDD也移植过来,然后编译生成了rilgsm.dll,然后修改了platform.bib和platform.reg文件,然后把此两个文件拷贝到OSDesigns\\......\\release 目录下,然后makeimg, ...…

查看全部问答>

ABB 脉冲累计功能块问题

请问一下,ABB自带功能块“脉冲累计”如何写入固定值后再累计,比如我清零后,想写入一个固定数值如:888,到脉冲计数器中,然后再进行累计?求解!…

查看全部问答>