历史上的今天
返回首页

历史上的今天

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

2019年01月26日 | STM8L15x系列DAC的使用

2019-01-26 来源:eefocus

在项目中偶尔会使用DA转换器,我使用的MCU是STM8L151G6U6。我是用的是PB4作为DA输出管脚,查阅该芯片的Reference manual手册可知,PB4是属于DAC_OUT1,即DAC通道一。 

 

再查阅PB4输入输出控制,PB4对应的是开关15。 

 

下面是我用软件触发模式使用的DAC配置代码。 


dac.h头文件代码如下:


#ifndef __DAC_H__

#define __DAC_H__


#ifdef __cplusplus

extern "C"{

#endif


#include "stm8l15x.h"


/* DAC_OUT ---> PB4(DAC_OUT) */

#define    DAC_OUT_PORT    (GPIOB)

#define    DAC_OUT_PIN     (GPIO_Pin_4)


/* Function prototype */

void DAC_Init(void);


#ifdef __cplusplus

}

#endif


#endif  /* End define macro __DAC_H__ */


dac.c源文件代码如下:


#include "dac.h"


/*

** @ Brief: Init DAC

** @ Parameter: None

** @ Return: None

**/

void DAC_Init(void)

{

        /* Configure DAC GPIO pin */

        GPIO_Init(DAC_OUT_PORT, DAC_OUT_PIN, GPIO_Mode_In_FL_No_IT);


        /* Enable comparator clock */

        CLK_PeripheralClockConfig(CLK_Peripheral_COMP,ENABLE);


        /* Enable DAC Clock */

        CLK_PeripheralClockConfig(CLK_Peripheral_DAC, ENABLE);


        /* Enable PB4 input output switch */

        SYSCFG_RIIOSwitchConfig(RI_IOSwitch_15, ENABLE);


        /* Init DAC channel 1 output and enable output buffer */

        DAC_DeInit();

        DAC_Init(DAC_Channel_1, DAC_Trigger_Software, DAC_OutputBuffer_Enable);


        /* Enable the selected DAC channel wave generation */

        DAC_WaveGenerationCmd(DAC_Channel_1, DAC_Wave_Triangle, ENABLE);


        /* Select DAC Triangle Wave Generation Amplitude according to the specified parameters */

        DAC_SetTriangleWaveAmplitude(DAC_Channel_1, DAC_TriangleAmplitude_4095);


        /* Enables the specified DAC channel. */

        DAC_Cmd(DAC_Channel_1, ENABLE);

}


在main.c中,使用DAC转换器的代码如下;


#include "dac.h"


void main(void)

{

    uint16_t DACData = 0;


    DAC_Init();


    while(1)

    {

        for(DACData = 0; DACData < 4096; DACData++)

        {

            DAC_SetChannel1Data(DAC_Align_12b_R, DACData);


            DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);

        }

    }

}


用示波器测量PB4会发现,电压值从小到大循环往复。转换关系为:


输出电压 = DACData * 参考电压 / 4096;


其中4096为DAC触发振幅,由初始化参数DAC_TriangleAmplitude_4095设定,可以更改;DACData为输入的需要转换的值,范围0~触发振幅(这里为4096);参考电压一般为板子工作的所需的正常电压,我的为3.3V。


推荐阅读

史海拾趣

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

进入21世纪后,高通在推动5G技术发展方面发挥了关键作用。作为真正的5G领军企业,高通在基础研发方面持续投入,拥有引领和参与标准制定的长期历史。高通的5G技术涵盖了从系统构建到多样化应用的各个方面,包括毫米波频谱的利用、大规模MIMO技术的演进等。这些突破性发明为现代蜂窝通信提供了强有力的支撑,使得高通在5G标准制定和技术实施方面占据了核心地位。高通已签订超过150份5G许可协议,为全球超过180亿台终端提供了技术支持。

Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事

高通公司在追求技术创新的同时,也积极履行企业社会责任。公司发布了《2023高通中国企业责任报告》,详细介绍了高通如何通过赋能数字化转型、负责任地经营以及可持续地运营等战略重点领域,推动社会公平发展。高通与中国乡村发展基金会、中国红十字基金会等多个机构合作,开展智慧农业、基层医务工作者培训等项目,助力乡村振兴和医疗卫生事业发展。此外,高通还致力于STEM教育,通过合作项目为下一代创新者提供技能和知识支持。这些举措不仅体现了高通的社会责任感,也为其在电子行业中的长远发展奠定了良好的社会基础。

绿宝石(BERYL)公司的发展小趣事

绿宝石公司自创立之初,便致力于电子材料领域的研发。某年,公司研发团队成功开发了一种具有优异性能的绿宝石电子材料,这种材料在高频、高温等极端环境下仍能保持稳定性能,为电子行业带来了革命性的变革。随着这一技术的广泛应用,绿宝石公司在行业内逐渐树立了技术领先的形象,市场份额稳步上升。

超音(CY)公司的发展小趣事

面对数字化浪潮的冲击,超音积极响应行业变革,加快了数字化转型和智能化升级的步伐。公司引入了先进的生产设备和管理系统,提高了生产效率和产品质量。同时,超音还加大了对智能化产品的研发投入,推出了一系列具有智能化功能的音频设备产品。这些产品不仅满足了消费者对高品质音频的需求,还提供了更加便捷和智能的使用体验。这些努力使得超音在数字化转型和智能化升级方面取得了显著成效,为公司的未来发展注入了新的活力。

EFC [Electronic Film Capacitors, Inc.]公司的发展小趣事

在当今社会,绿色环保已经成为一种趋势。EFC公司积极响应这一号召,将绿色环保理念融入到产品设计和生产过程中。他们采用环保材料和技术,减少废弃物和污染物的排放。同时,EFC还积极推广绿色能源和节能技术,帮助客户降低能源消耗和碳排放。这种对环保的关注和贡献让EFC赢得了社会各界的赞誉。

Ark-Les Connectors公司的发展小趣事

在电子行业中,品质是生存和发展的关键。Ark-Les Connectors公司从一开始就深知这一点,因此将品质控制作为公司发展的核心战略。公司建立了严格的质量管理体系,从原材料采购到生产流程控制,再到产品检测与售后服务,每一个环节都严格把关。这种对品质的坚持让Ark-Les的产品在市场上赢得了良好的口碑,也为公司积累了大量的忠实客户。

问答坊 | AI 解惑

应届生求职大礼包

应届生求职大礼包…

查看全部问答>

多串口卡IO地址/中断由BIOS指定

芯惠通的JetCard1404的每个串口的IO地址和中断在哪能找到? 打电话问客服,说是在BIOS里面有,具体的哪儿也不知道 我在设备管理器里面找,由多串口卡扩展出来的4个串口都没有“资源“这一项! 请问到底怎么找啊?因为要用C语言在TC里面编程,找 ...…

查看全部问答>

直流电机的问题,,,求助

用AT89C2051来使四个继电器来分别控制四个直流电机的同时正反转,而且还要用到二极管来演示电机的工作情况,具体应该怎办??…

查看全部问答>

2410init.s中的疑问和分析

我发现在2410init.s中的“拷贝nand中内容到SDRAM”的这个代码是有问题的。理由如下:      我们知道nand中存在坏块的,但是第一个block肯定是好块,这个可以确认。 如果我我烧录的bin文件是低于steppingstone 4KB大小,那么 ...…

查看全部问答>

USB Host端 怎样读取多重配置描述符

各位大虾, 我现在在做usb host端程序,处理的设备有两种配置,1。U盘,2,hid+audio, 现在默认配置是u盘功能,现在我想要在设备插入时,枚举过程中,选择配置2,hid+audio, 该怎样的命令流程,希望大虾们能指点一下,谢谢! PS:现在固定的枚举 ...…

查看全部问答>

wince上 如何实现端口和进程关联

RT 谁做个这方面的 能否提供点思路 或者源码 PC上关于这方面的代码都挺多的,在Wince上没有找到相关的资料,迷茫 据我分析 PC上的方法在Wince上面都无法实现的 PC上的方法: 1. 通过IP Helper Function中的几个未公开的函数实现 All ...…

查看全部问答>

请问电压驻波比

请问 input return loss 这个dB是越大越好,还是越小越好呢 output return loss 这个dB是越大越好,还是越小越好呢…

查看全部问答>

谁能帮我找下这款接收器的资料说明,有图。

谁能帮我找下这款接收器的资料说明,有图。型号是NX3BU4 封装是PBGA88 如图:…

查看全部问答>