【stm32】DAC输出三角波锯齿波

这篇具有很好参考价值的文章主要介绍了【stm32】DAC输出三角波锯齿波。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【stm32】DAC输出三角波锯齿波及任意波形

导入DAC.ioc(见上节DAC学习笔记)

DAC输出三角波

CubeMX图形化配置

DAC配置
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言
实现0.1ms定时周期
时钟树配置
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言

程序编写

/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Includes */
  /* USER CODE BEGIN 2 */
  lcd_init();
  lcd_show_str(10, 10, 24, "Demo15_2: DAC1 triggered by TIM6", RED);
  lcd_show_str(10, 40, 24, "Triangular wave on PA4", RED);
  lcd_show_str(10, 70, 24, "Wave's interval is 819ms", RED);

  HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
  uint32_t DCValue = 0;
  HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, DCValue);
  HAL_TIM_Base_Start(&htim6);

  /* USER CODE END 2 */

实现效果

采用CubeMonitor监测生成波形
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言
也可用示波器检测波形生成结果

生成噪声波

在此处更改配置
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言

生成锯齿波(任意波形)

使用DMA触发任意波形
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言
【stm32】DAC输出三角波锯齿波,stm32学习笔记,stm32,嵌入式硬件,单片机,开发语言
若要调整锯齿波的周期,修改TIM6的分频系数和计数周期即可

程序编写

/* USER CODE BEGIN Includes */
#include "lcd.h"
#include "keyled.h"
/* USER CODE END Includes */
  /* USER CODE BEGIN 2 */
  lcd_init();
  lcd_show_str(10, 10, 24, "Demo15_3: DAC output with DMA", RED);
  lcd_show_str(10, 40, 24, "Sawtooth wave on PA4", RED);
  lcd_show_str(10, 70, 24, "Wave's interval is 100ms", RED);

  uint32_t userWave[1000];
  userWave[0] = 0;
  for (uint16_t i = 1; i < 1000; ++i) {
	  userWave[i] = userWave[i - 1] + 4;
  }
  HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1, userWave, 1000, DAC_ALIGN_12B_R);
  HAL_TIM_Base_Start(&htim6);

  /* USER CODE END 2 */

重写回调函数文章来源地址https://www.toymoban.com/news/detail-835083.html

/* USER CODE BEGIN 4 */
void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef *hdac) {
	LED0_Toggle();
}
/* USER CODE END 4 */

到了这里,关于【stm32】DAC输出三角波锯齿波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式学习笔记——STM32的时钟树

    在之前的所有代码编程的过程中,似乎每次都绕不开一个叫做时钟使能的东西,当时我们是在数据手册上直接看其挂接在那条时钟线上的,那么STM32内部的时钟到底是怎么一个构型呢,本文来对此做一个介绍。 老规矩,一个新的名词出现,首先需要搞清楚它是个啥,下图中对

    2024年02月02日
    浏览(53)
  • 嵌入式学习笔记——STM32硬件基础知识

    上一篇中我们重点是讲了一下怎么搭建开发环境以及怎么下载烧录的过程,这都是解决的电脑端的开发环境问题,还没有到实际的开发板上,我们的单片机是都是焊接在开发板上的,PCB上有着它所需的工作电路。并不是直接给供电电压就可以让其工作的,本文主要是简介一下

    2024年01月22日
    浏览(68)
  • 嵌入式学习笔记——STM32的USART通信概述

    上两篇文章中,已经实现了GPIO的通用输出以及通用输出模式,从本文开始,笔者将开始有关GPIO的复用功能的介绍,首先是最常用复用功能——串口,本文主要是介绍一些关于通信以及串口的基本概念。 通信协议:通信双方进行信息交换(接收或发送)要满足的规则,而这个规

    2023年04月08日
    浏览(55)
  • 嵌入式学习笔记——STM32的USART相关寄存器介绍及其配置

    上一篇中,对串口做了个概述,主要是介绍了串口通信的特征,异步串行全双工通信,然后就是结合串口的框图梳理了一下STM32中USART的配置流程以及发送接收数据的流程,本文将接着上篇的内容,对串口的寄存器做个介绍,然后实现一个简单的收发实验。 根据之前GPIO的经验

    2024年02月05日
    浏览(54)
  • 嵌入式学习笔记——STM32的USART收发字符串及串口中断

    上一篇中,介绍了串口收发相关的寄存器,通过代码实现了一个字节的收发,本文接着上面的内容,通过功能函数实现字符串的收发,然后引入中断解决收发过程中while()死等的问题。 根据昨天的字符发送函数,只需要稍作修改即可实现发送函数了,一个字符串的结尾会有一

    2024年02月03日
    浏览(76)
  • 嵌入式系统开发13——STM32输出PWM实现呼吸灯

    本文主要介绍在STM32F103C8T6上,利用定时器输出PWM波形,进而驱动LED实现呼吸灯。 使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。 脉冲宽度调制(PWM) ,是

    2023年04月08日
    浏览(84)
  • 蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

    首先学习了解一下蓝桥杯嵌入式CT117E-M4开发板的主控芯片STM32G431RBT6,本文仅为个人学习成果总结,如有错误,恳请指正。 上图为STM32CubeMX选型界面,如图可以看出STM32G431RBT6具有以下特点和硬件集成。 采用Cortex-M4 32位RISC核心架构,工作频率最高可达170Mhz。 128kBytes的FLASH,32

    2023年04月09日
    浏览(59)
  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(56)
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

    上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 学C语言时,使用的printf()函数,就是通过串口打印出来的。 跟外部器件通信,比如GPS模块、蓝牙模块、wifi模块; 两个开发板之间通信,制定私有协议。 PC电脑通信,使用上位机显示数据或控制下位机。 操作:打

    2024年01月22日
    浏览(65)
  • 【51单片机】DAC0832制作信号发生器(方波,三角波,锯齿波)

    将模拟量转换为数字量称为模数转换(A/D转换), 模拟量是连续的 ,比如电压、电流等,可以连续变化的量; 数字量是离散的 ,对应于计算机中的位,每一个位只能是0或1,是不存在中间状态的。通过模数转换原件将模拟量转化为数字量输入计算机,以便计算机进行计算、

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包