今天讲解“STM32F103 DAC输出电压”功能。
今天提供并讲解的软件工程,基于软件工程“A0.0.0(STM32F10x_TIM延时)”修改而来。若不知道如何而来,请关注微信公众号“strongerHuang获取更多信息。
每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/cPU3YIHzcu6Eu 访问密码 11f0
STM32F10x的资料可以在我360云盘下载:
https://yunpan.cn/crBUdUGdYKam2 访问密码 ca90
一、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 17:44
STM32——如何配置GPIO的led点亮
GPIO_Init(); 1、使能GPIO的时钟 2、设置GPIO目标引脚 3、控制GPIO引脚输出高低电平 IO操作重要结构体:GPIO_InitTypeDef typedef struct { uint32_t Pin; 操作的管脚 uint32_t Mode; 模式选择 uint32_t Pull; 上拉下拉,或者都不加 uint32_t Speed; 速度选择 uint32_t Alternate; 管脚复用模式 } GPIO_InitTypeDef; GPIO的led点亮: void GPIO_Init(void) { GPIO_I
[单片机]
STM32学习之:USART中断方式
前面我们接收了串口通信的查询方式,现在我们来介绍中断方式。 步骤一:初始化GPIO GPIO_InitTypeDef GPIO_InitStructure; /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_Init
[单片机]
RT-Thread 自动初始化机制
自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。 在RTT的代码中,有rt_components_init()和rt_components_board_init();两个函数,用于实现自动初始化机制。 RTT官方文档的系统启动流程图中,6种注册分别于上述两个函数中实现自动初始化。 两个初始化函数也很简单,就是调用从__rt_init_rti_board_start到__rt_init_rti_board_end的函数执行一遍;__rt_init_rti_board_end到__rt_init_rti_end的函数执行一遍。 /** * RT-Thr
[单片机]
STM32_DAC输出三角波形
今天的软件工程下载地址(360云盘): https://yunpan.cn/cPi8GB2DyeKzI 访问密码 1a45 STM32F10x的资料可以在我360云盘下载: https://yunpan.cn/crBUdUGdYKam2 访问密码 ca90 工程概要说明:该工程通过配置,输出固定三角波形,频率和幅度也是固定的,当然也是可以变化,如果有朋友需要可以微信公众号中留言。 关于“STM32F103 DAC输出三角波形” 我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。 一、RCC时钟配置 该函数位于在bsp.c文件下面; 使能RCC时钟:RC
[单片机]
stm32 调试can总线丢帧的问题
问题出现的背景 需要写一个新的电机的驱动,使用can通讯,驱动比较简单,很快就写好了。自己单独测试一个电机的时候没有问题,正反转测什么的都很正常。本以为事情会很顺利,但是在测两个电机的时候,却发现很严重的问题,经常左电机不装或者是右电机不转。 问题的解决步骤 方案一: 1. 遇到这种问题通常都是加上一个延时,觉得可能就是发的太快了,时许上可能有问题,但是我们的系统是一个实时的系统延时的时间不能太长。 2. 经过测试发现加延时可能较小出现这种问题的概率,但是不能解决这个问题,最终车子还是无法正常运行,没办法这个方案不行。 分析: 既然加延时不行的话,只能去找为什么电机不装。使用can转usb将数据抓出来之后,发
[单片机]
使用STM32定时器输出任意相位差的方波
方法十分简单,不用说明,看图即知(这里画了2路输出,同样道理可以产生3路甚至4路输出)
[单片机]
STM32固件库实现点亮LED
前言 使用固件库点亮LED 提示:以下是本篇文章正文内容 一、原理图 二、软件设计 在工程之上新建“bsp_led.c”及“bsp_led.h”文件,这些文件不属于STM32 标准库的内容,是由我们自己根据应用需要编写的,编程步骤如下: 使能 GPIO 端口时钟; 初始化 GPIO 目标引脚为推挽输出模式; 编写简单测试程序,控制 GPIO 引脚输出高、低电平 三、代码 1.LED 灯引脚宏定义 在编写应用程序的过程中,要考虑更改硬件环境的情况,即提高可移植性。 这个时候一般把硬件相关的部分使用宏来封装,若更改了硬件环境,只修改这些硬件相关的宏即可,这 些定义一般存储在头文件,即本例子中的“bsp_led.h”
[单片机]
STM32 波形
只有给外设开启了时钟, 才能操作和控制外设。 // 产生三角波 在上述代码基础上加入下面代码,其中部分代码替代 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 0xF; TIM_TimeBaseStructure.TIM_Prescaler = 0xF; TIM_TimeBaseSt
[单片机]