今天讲解“STM32F103DAC输出电压”功能。
今天提供并讲解的软件工程,基于软件工程“A0.0.0(STM32F10x_TIM延时)”修改而来。若不知道如何而来,请关注微信公众号“EmbeddDeveloper”获取更多信息。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/cPU3YIHzcu6Eu访问密码 11f0
STM32F10x的资料可以在我360云盘下载:
https://yunpan.cn/crBUdUGdYKam2访问密码 ca90
关于“STM32F103DAC输出电压”我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。
一、RCC时钟配置
该函数位于在bsp.c文件下面;
使能RCC时钟:RCC_APB1Periph_DAC
这里DA的时钟不像AD有AD1、AD2等,DA是共用时钟,所以调用接函数的时候一定要区分DA1和DA2开来。
二、引脚配置
该函数位于在dac.c文件下面;
对DA通道1所使用的引脚进行配置。
注意:
这里的DAC_OUT1引脚是固定对应的PA4的,一旦启动DA1功能,这个引脚就用于DAC功能了。
三、DAC配置
该函数位于在dac.c文件下面;
对DA进行配置。
配置的每一条语句都有注释,请看源代码.
这里配置的都比较基础的,后续我会讲解复杂一点的配置(前期第一阶段定位在初级,所以,如果你想了解更高级的功能,请持续关注我的微信公众号)。
四、输出电压
该函数位于在dac.c文件下面;
调用这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。
这里是使用软件出发转换,后期会使用其他方法触发。
五、主函数应用
该函数位于在main.c文件下面;
主要就是在上电配置DA,并让其在PA4引脚上输出1.5V的电压。
可以看到现象:间隔500ms,LED变化,串口打印出字符串。
六、今天的重点提示
A.DA1和DA2的配置基本一样;
B.为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN),因此在引脚配置的地方配置为:GPIO_Mode_AIN。
下载方式:长按网站 ->选择复制 ->打开
或者复制网站在电脑上下载也可。
关键字:STM32 DAC 输出电压
引用地址:
STM32_ DAC输出电压
推荐阅读最新更新时间:2024-11-08 10:30
STM32各个系列时钟调高时出现异常案例
STM32用户反馈,使用STM32F103内部时钟,把系统时钟配置成64MHz单片机就不跑了,配置成36MHz程序就正常妥妥的,频率稍高点就容易导致死机。他贴出的代码如下:void RCC_Configuration(void) { RCC_DeInit();//将外设 RCC寄存器重设为缺省值 RCC_HSICmd(ENABLE);//使能HSI while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//等待HSI使能成功 //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //FLASH_SetLatency(FLASH
[单片机]
STM32端口时钟
1、RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIOC时钟 为什么说有的CortexM3外设在配置前都要配置RCC对于的时钟? 因为CortexM3是时钟驱动型,所有的外设都被分配到不同的总线桥上,有总线来提供工作的时钟。当关闭某个外设的时钟的时候,也就意味做这个外设被关闭了,以期达到可以控制MCU电流消耗的目的。 2、RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIOC时钟 为什么配置C端口,需要初始化的是APB2时钟? 因为STM32有两条外设桥总线,分别为最大72Mhz的A
[单片机]
伍尔特电子扩展其 MagI³C-FDSM-36-V 系列,推出 12 V 输出电压版本
伍尔特电子扩展其 MagI³C-FDSM-36-V 系列,推出 12 V 输出电压版本 取代 L78x 线性稳压器的电源模块 瓦尔登堡(德国),2022 年 05 月 09 日—具有 36 V 输入电压的 MagI³C-FDSM 电源模块 的产品范围扩展,现已包括12 V 输出电压的版本。采用 SIP-3 封装的电源模块是一种经济高效的解决方案,可满足 24 V 工业电源架构在实际环境中的电压瞬变要求。新模块的工作电压为 16 至 36 VIN ,固定输出电压 12 V,电流高达 1 A。 FDSM 系列 MagI³C 电源模块 是具有固定输出电压的完全集成 DC/DC 电压转换器。模块包含了所有需要的元器件,如控制
[电源管理]
stm32位带操作
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核(ST‘s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range t
[单片机]
STM32 BIT_BAND 位带别名区使用入门
这两个区中的地址除了可以像普通的RAM 一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字 每个比特膨胀成一个32 位的字,就是把 1M 扩展为 32M ,于是;RAM地址 0X200000000(一个字节)扩展到8个32 位的字,它们是: // 0X220000000 ,0X220000004,0X220000008,0X22000000C,0X220000010,0X220000014, 0X220000018,0X22000001C // 支持位带操作的两个内存区的范围是: // 0x2000_0000‐0x200F_FFFF(SRAM 区中的 // 0x4000_0000‐0x400F_
[单片机]
STM32跑马灯-寄存器
操作寄存器与使用库函数的不同点在于,时钟使能时,操作RCC- AHB1ENR寄存器,因为时设置GPIOF,所以要操作位5,我们这里采用位运算的方式,具体详细原理见以下图示。 然后我们再查询具体的操作要求,如下图。 可见使能位5的话需要将位5置1,所以 |= 1 5;就满足了我们的要求。 再有我们初始化GPIO的时候用到了库函数void GPIO_Set(GPIO_TypeDef* GPIOx,u32 BITx,u32 MODE,u32 OTYPE,u32 OSPEED,u32 PUPD),调用这个函数与我们之前写库函数版本的时候操作GPIOx的各个寄存器是一样的,只不过是将各参数传给函数让函数帮你执行,看起来更加
[单片机]
STM32之I2C模块调试总结
前一段时间对STM32的I2C模块进行了调试,今天做一个总结。关于I2C协议的知识,这里就不再赘述,网上有很多介绍I2C协议的文章。目前实现I2C协议的方式有两种,一是采用GPIO口来模拟I2C协议,另外一种是使用STM32自带的I2C模块。虽说使用GPIO口模拟I2C协议较为复杂,需要详细了解I2C协议的内容,但是实现这种方式的资料也非常多,网上都有对应的源码实现,只需要简单修改,就可以实现功能。而针对使用STM32自带的I2C模块,网络上贬斥的声音较多,说是模块本身自带bug,容易出问题,甚至还有人说是史上最难调的I2C模块。当然了,这些问题我自己目前还没有遇到,可能需要以后来验证了。好了,言归正传,今天主要记录一下调试过程以
[单片机]
【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(13)DAC 模块介绍
DAC是一种把二进制数字量形式的离散信号转换成以标准量(或参考量)为基准的模拟量的转换器,它常用于过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。 13.1.GD32 DAC 外设原理简介 因篇幅有限,本文无法详细介绍GD32所有系列的DAC,下面以GD32F30x为例,先着重介绍下GD32F30x的DAC及其结构框图,然后介绍下各个系列DAC的差异。 GD32F30x DAC 主要特性 ◼ 8位或12位分辨率,数据左对齐或右对齐; ◼ 每个通道带有DMA功能; ◼ 同步更新转换; ◼ 外部事件触发转换; ◼ 可配置的内部缓冲区; ◼ 输入参考电压VREF+; ◼ 噪声波生成(LSFR噪声模式和三角噪
[单片机]