细说MCU的DAC改变输出信号频率的方法

目录

一、参考硬件

二、改变输出信号的频率

1.建立新工程

2.配置TIM3

三、代码修改

四、查看结果 


一、参考硬件

        本项目依赖的软件和硬件工程参考本文作者写的文章:细说MCU的DAC1和DAC2各自输出一通道模拟信号的方法-CSDN博客
 https://wenchm.blog.csdn.net/article/details/140791751icon-default.png?t=N7T8http://xn--https-rfa//wenchm.blog.csdn.net/article/details/140791751       

        最直接的改变输出信号频率方法就是修改定时器的Update Event的频率。把输出信号的频率由20kHz改为50Hz。

二、改变输出信号的频率

1.建立新工程

        除了对TIM3进行重新配置和对DAC2配置为Disable外,本文示例的工程其它配置与参考文件一样。不再重复进行配置说明。

2.配置TIM3

        参考文献中配置定时器TIM3的参数时,计数器的周期设为169,由于系统时钟频率为170 MHz,所以定时器的Update Event频率为170MHz/((0+1)*(169+1))=1 MHz。由于所用波形数据的点数为50,所以用1 MHz的频率提 取50个数据需要的时间为50us,对应的频率就是20 kHz。如果要将频率降低至50 Hz,也就是降低400倍,此时可以将定时器的Update Event频率降低到2.5 kHz(1 MHz/400)。由于倍数比较高,单纯修改计数器的周期值无法实现,所以需要先将定时器时钟的预分频因子修改为169,也就是设置定时器的时钟频率为1 MHz,然后将计数器的周期修改为399,则定时器Update Event的频率为170MHz/((169+1)*(399+1)) = 2.5 kHz。

三、代码修改

/* USER CODE BEGIN 2 */HAL_TIM_Base_Start(&htim3);HAL_DAC_Start_DMA(&hdac1,DAC_CHANNEL_1,(uint32_t*)SineWaveDataPh90,DAC_BUFFER_SIZE,DAC_ALIGN_12B_R);
/* USER CODE END 2 */
/* USER CODE BEGIN PV */
uint16_t SineWaveDataPh90[DAC_BUFFER_SIZE] = {3071,3063,3039,2999,2944,2876,2794,2700,2596,2483,2364,2239,2112,1983,1856,1731,1612,1499,1395,1301,1219,1151,1096,1056,1032,1024,1032,1056,1096,1151,1219,1301,1395,1499,1612,1731,1856,1983,2112,2239,2364,2483,2596,2700,2794,2876,2944,2999,3039,3063
};
/* USER CODE END PV */
/* USER CODE BEGIN Private defines */
#define DAC_BUFFER_SIZE (uint16_t) 50
/* USER CODE END Private defines */

四、查看结果 

        编译工程并下载到硬件中,将程序运行起来。分别用示波器查看 PA4和 PA6上波形,就可以看到输出信号频率已变为50Hz。不过由于上面的波形在一个周期内只有50个点,所以波形不是很连续。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280400.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【初阶数据结构篇】二叉树算法题

文章目录 二叉树算法题前言单值二叉树相同的树对称二叉树另一棵树的子树二叉树的前序遍历 二叉树算法题 前言 本篇的算法题涉及到链式结构二叉树的实现方法可参考:二叉链实现方法上篇二叉链实现方法下篇 单值二叉树 如果二叉树每个节点都具有相同的值,…

什么情况?我代码没了

前两天检视代码时,发现PR里面有两个提交的描述信息一模一样,于是我提出应该将这两个提交合并成一个,保持提交树的清晰。 1 先储存起来! 而同事这时正在开发别的特性,工作区不是干净的,没法直接执行 git r…

APDL(ANSYS Parametric Design Language)初识

APDL(ANSYS Parametric Design Language)编写涉及使用ANSYS的参数化设计语言来创建、修改和执行有限元分析(FEA)任务。以下是一些关于APDL编写的基本步骤、技巧和示例: 一、基本步骤 了解APDL基础: 熟悉AP…

如何在 Kali Linux 上安装和使用 Docker 和 Docker Compose

Docker 和 Docker Compose 是现代开发者必备的工具,特别是当你需要在不同的环境中部署应用时。本文将详细介绍如何在 Kali Linux 上安装 Docker 和 Docker Compose,并使用它们启动服务。即使你是个技术小白,也能轻松跟随这篇指南完成操作。 …

轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置

注:这是对我以前博客进行优化后再次发布的,博客中的截图为以前的。原博客已删除。 如何安装nginx nginx是一款开源、高性能的Web和反向代理服务器,支持HTTP、HTTPS、SMTP、POP3和IMAP协议。由于其轻量级、资源占用少和强大的并发能力&#…

基于vue2 + Ant Design 封装input(输入)下拉Table表格

封装 AInputTable 组件 <!--下拉Table--> <template><div class"input-select-table" ref"inputTableRef" v-clickoutside"handleHide"><div class"input-select-table-input" click"disabled?this:hand…

【C++] 认识C++(二)

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;是一名大厂后端c程序员。 &#x1f4da;本文收录于C系列&#xff0c;本专栏主要是分享我所了解的c知识&#xff0c;带领大家慢慢从了解c到认识c&#xff0c;持续更新&#xff01; &#x1f4da;相关专栏Linux正…

Base64解码时Illegal base64 character 20问题解决

一&#xff0c;问题 在使用Base64解码的时候 // 这里的keyContent是公钥&#xff0c;一般配置到配置中心里&#xff0c;然后注入到容器里 String publicKeyString keyContent .replaceAll("\\n", "") .replace("-----BEGIN PUBLIC KEY-----",…

sqli-labs(6-10)关通关讲解

sqli-labs(6-10)关通关讲解 Less-6 方法一&#xff1a;手工注入 1.判断闭合 http://localhost/sqli-labs/Less-6/?id1" //报错 http://localhost/sqli-labs/Less-6/?id1" -- //正常 http://localhost/sqli-labs/Less-6/?id1" and 11 -- http://localhos…

Vue Amazing UI:高颜值、高性能的前端组件库

Vue Amazing UI&#xff1a;高颜值、高性能的前端组件库 在当今前端开发中&#xff0c;Vue Amazing UI 作为一款功能强大的 UI 组件库&#xff0c;为开发者提供了全面的解决方案。本文将介绍 Vue Amazing UI 的基本信息、特点以及如何快速部署和使用。 软件简介 Vue Amazing U…

Win11没有记事本怎么办?更新至win11无法右键新建txt文件?

博主更新至Win11系统后目前用了不到一个月时间&#xff0c;今天突然发现 鼠标右键无法新建txt文件 了&#xff0c;一开始还以为Win11系统不支持txt类型文件&#xff0c;遂查找各种网上恢复教程。本文综合了多篇教程的方法&#xff0c;力求一文解决所有可能出现的情况&#xff0…

多路径TCP(MPTCP)研究概述

翻译自《A Brief Review of Multipath TCP for Vehicular Networks》一文的第2节&#xff08;Chao L, Wu C, Yoshinaga T, et al. A brief review of multipath tcp for vehicular networks[J]. Sensors, 2021, 21(8): 2793&#xff09;。 2.2. MPTCP概述 如今&#xff0c;大…

通知:全国135G大流量卡要统一下调至80G,大家抓紧下单!

通知&#xff1a;全国135G大流量卡要统一下调至80G&#xff0c;大家抓紧下单&#xff01; 接运营商最新通知&#xff01;&#xff01; 7月27日起&#xff0c;全国互联网电话流量卡产品市场迎来了新一轮的调整&#xff0c;超过135G的流量卡将陆续下架&#xff0c;现有大流量卡流…

谷粒商城实战笔记-92~96-商品发布和查询

文章目录 Spu列表检索接口。Sku列表检索接口。仓库列表接口。问题记录 这一篇包含如下内容&#xff1a; 92-商品服务-API-新增商品-商品保存其他问题处理93-商品服务-API-商品管理-SPU检索94-商品服务-API-商品管理-SKU检索95-仓储服务-API-仓库管理-整合ware服务&获取仓库…

蚓链数字化营销系统:“爆省”!“爆赚”!“爆值”!“爆快”!“爆增”!“爆享”!

随着信息技术的飞速发展和消费者行为的深刻变化&#xff0c;数字化营销已成为企业在市场竞争中取得优势的关键手段。蚓链数字化营销系统凭借其创新的功能和策略&#xff0c;为企业带来了一系列“爆”优势&#xff01; “按效果付费--信息化建设费用爆省”&#xff01; “按效果…

卷积神经网络(五)---图像增强的方法

前面的部分专注于卷积神经网络的层结构介绍&#xff0c;同时还介绍了到目前为止比较出名的卷积神经网络&#xff0c;接着使用比较复杂的卷积神经网络提高了 MNIST 数据集的准确率。下面将从另外的角度——图像增强的方面入手&#xff0c;提高模型的准确率和泛化能力。 一直以来…

Android 系统与SDK和JDK版本对照表

Android 系统与SDK和JDK版本对照表 传说中的兼容问题是指在高版本 SDK 平台开发的软件&#xff0c;可能在低版本 Android 系统中运行时出现各种问题。而低版本 SDK 开发的软件在高版本 Android 系统中运行时基本没有兼容问题的。 Android版本SDK/API版本JDK版本备注Android 14…

Django的响应对象

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) Django的请…