stm32 键盘用DAC设计低频信号发生器——硬键盘

Bad Request
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.基于STM32的简易信号发生器_图文_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于STM32的简易信号发生器
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩15页未读,
定制HR最喜欢的简历
你可能喜欢热门搜索:
硕士/研究生
&&&&&&DOC文档下载
游客快捷下载
会员登录下载
下载资源需要18元
邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。注:支付完成后需要自己下载文件,并不会自动发送文件哦!
支付方式:
已注册用户请登录:
当日自动登录&&
&&合作网站一键登录:
1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
2、文档下载后都不会有金锄头文库的水印,预览文档经过压缩,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、所有文档都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
下载须知 | 常见问题汇总
低频双相函数信号发生器的设计毕业论文
摘要信号发生器是一种能产生模拟电压波形的设备,这些波形能够校验电子电路的设计。信号发生器广泛用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是STM32单片机构成的发生器,可产生三角波、方波、正弦波、锯齿波,波形的频率可用程序控制改变。此系统使用STM32内部的DAC转换器,节约空间和成本。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。两路信号频率范围从1000HZ到2000HZ可调,步进值1HZ,频率准确度不低于3,且每路信号频率和步进值单独程控可调;产生两路频率相同的正弦信号,程控设置其相位差,可以在0360度内变化,设置相位差的精度不大10度;产生的方波占空比在199范围内可调,设置分辨率不低于1。两路信号输出最大幅度不低于25V,每路幅度单独程控可调,设置分辨率不低于100MV;本信号发生器既可实现产生低频信号,也可实现产生高频信号,产生的信号为特定频率信号。关键词信号发生器,STM32,DDS,波形目录双相低频数字信号发生仪论文1第1章绪论411课题背景412数字信号发生器简介4第2章低频信号发生器的方案研究521方案的构思与选择522方案的实现5第3章硬件电路的设计731系统总体框图及其结构分析7311系统框图展示7312双向低频信号发生器的使用方法732硬件模块展示与分析8321STM32单片机模块简介8322显示及控制模块9323电源模块10第4章波形产生及其软件设计1141软件总体设计1142波形产生11421DDS数字法信号合成技术11422矩形波11423三角波12424正弦波13425锯齿波14结论16参考文献17附录一试验完整程序18附录二实验成果展示38双相低频数字信号发生仪论文2第1章绪论11课题背景随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。12数字信号发生器简介数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。凡是产生测试信号的仪器,统称信号源也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。在测试、研究或调整电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电双相低频数字信号发生仪论文3压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。当测试系统的瞬态特性时,又需使用前沿时间、脉冲宽度和重复周期已知的矩形脉冲源。并且要求信号源输出信号的参数,如频率、波形、输出电压或功率等,能在一定范围内进行精确调整,有很好的稳定性,有输出指示。双相低频数字信号发生仪论文4第2章低频双相信号发生器的方案研究21总体方案构思与选择波形发生器可以基于模拟技术,也可以基于数字技术。模拟发生器利用模拟硬件来产生简单的函数,并在需要指定频率的静态正弦波或方波时经常使用。而数字函数发生器采用直接数字综合技术,DAC,数字信号处理。。根据设计要求,为实现发生仪应有的功能,选择使用单片机、定时器、DA转换器作为信号发生部分,由真彩屏作为人机界面的设计思路。构思框图如下图所示。图211构思框图22方案的实现根据双向低频信号发生器的功能需要,我们选用STM32单片机。使用STM32减少了外拓替他芯片,提高了一起的系统可靠性,其计算能力更强,计算速度更快,提高了波形实现的准确度。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCORTEXM3内核。按性能分成两个不同的系列STM32F103“增强型”系列和STM32F101“基图221STM32单片机本型”系列。增强型系列时钟频率达到72MHZ,是同类产双相低频数字信号发生仪论文5品中性能最高的产品;基本型时钟频率为36MHZ,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHZ时,从闪存执行代码,STM32功耗36MA,是32位市场上功耗最低的产品,相当于05MA/MHZ。控制及显示界面选用的是TFT24寸的LCD液晶显示屏,及电子触摸屏。采用24寸彩色液晶显示屏作为人机交互界面既美观,同时又能直接方便的调节对各通道各波形参数进行调节;在一种对外界完全隔离的环境下工作,不怕灰尘、水汽和油污,能适应各种恶劣环境;可以用任何物体来触摸,稳定性较好;四层结构造成其透光率较低;使用寿命相对较长;屏幕比较便宜;反应灵敏度也较好。双相低频数字信号发生仪论文6第3章硬件电路的设计31系统总体框图及其结构分析311系统框图展示双向低频信号发生器系统主要由CPU、定时器、两路12位DA转换器、控制及显示电路、供电电源等电路组成。系统总体框图如下图所示。ARM32位的CORTEX(TM)M3CPU内置12位DAC1内置12位DAC2TFT24寸触彩色液晶摸显示屏屏通用定时器2供电电源示波器检测STM32F103信号2信号1图3111系统总体框图312双向低频信号发生器的使用方法双向低频信号发生器通过320240彩色触摸屏作为人机界面调节两路波形,波形幅度,波形频率以及方波的占空比和正弦波的相位差。如图3121的显示及控制界面图,触摸通道一下方的开(即打开通道一),点按通道区域波形处,即可改变波形(依次由三角波,正弦波,方波,锯齿波进行循环调节);在确定波形以后,可点按通道一的频率区进行双相低频数字信号发生仪论文7图3121显示及控制界HZ的频率调节,其中每点按一次频率区依次对频率的千、百、十、个位进行上下调节(上下由调频处的上下按键改变);点按通道一的幅度区对幅度调节,每点按一次幅度值增加01V;特别的对于方波触摸通道一的占空比处可改变方波的占空比大小由199进行循环,每点按一次增加1;同样的方式对通道二各波形参数进行调节。另外在两路正弦波处于工作显示状态时,可点按相位差处对两路相位差进行调节(0360进行循环),每点按一次相位差增加1。在各通道,各参数都确定以后,触摸左上方“输出”按键,即可输出所要求的波形。、32硬件模块展示与分析321STM32单片机模块简介STM32F103内部主要配置内核ARM32位CORTEXM3CPU,最高工作频率72MHZ,125DMIPS/MHZ。单周期乘法和硬件除法。存储器片上集成32512KB的FLASH存储器。664KB的SRAM存储器。时钟、复位和电源管理2036V的电源供电和I/O接口的驱动电压。POR、PDR和课编程的电压探测器(PVD)。416MHZ的晶振。内嵌出厂前调校的8MHZRC振荡电路。内部40KHZ的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32KHZ的晶振。低功耗3种低功耗模式休眠,停止,待机模式。为RTC和备份寄存器供电的VBAT。调试模式串行调试(SWD)和JTAG接口。图3211STM32最小系统双相低频数字信号发生仪论文8DMA12通道DMA控制器。支持的外设定时器,ADC,DAC,SPI,IIC和USART。2个12位的US级的A/D转换器(16通道)A/D测量范围036V。双采样和保持能力。片上集成一个温度传感器。2通道12位D/A转换器STM32F103XC,STM32F103XD,STM32F103XE独有。最多高达112个的快速I/O端口根据型号的不同,有26,37,51,80,和112的I
本文(低频双相函数信号发生器的设计毕业论文)为本站会员(lizhencai0001)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“”【网址:】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
分享当前资源【低频双相函数信号发生器的设计毕业论文】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------
元price_share
&|&川公网安备 12号&|&经营许可证(蜀ICP备号-1)(C) by Sichuan Goldhoe Inc. All Rights Reserved.
&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>一、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站提供全自助服务,购买后点击下载按钮可以下载到你电脑或手机(系统不会发送文档到您的邮箱),请注意查看下载存放位置;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>二、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站具有防盗链功能,所以不要使用迅雷、旋风、网际快车等第三方辅助下载工具(不支持&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>QQ浏览器&/span>),否则下载下来的文件只是网页或乱码;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>三、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>由于网络原因、下载知识欠缺、本地电脑&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>或&/span>手机阻止下载等问题无法解决时,需要提供以下&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&; color: rgb(255, 0, 0);&>任意一条信息&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>给我们,我们才能更及时地为你服务:&/span>&br/>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.1、如果是注册的会员,请告诉我们你的会员账号;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.2、如果是游客下载的,请告诉我们你下载时填写的手机或者邮箱;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.3、如果是微信或QQ快捷登陆的,请告诉我们你的微信或QQ昵称;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.4、如果这些你仍然无法确定,请告诉我们你的付款单号(我们可以通过单号反过来查询你的账号和下载记录)&/span>&a href=&https://www.jinchutou.com/i-93.html& target=&_blank& style=&text-decoration: color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>&span style=&color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>看看什么是单号?&/span>&/a>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>四、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>需要下载哪份文档,请发送文档网址,而不是截图,更不要直接把标题给我们;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>五、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>其它下载常见问题详见:&/span>&a href=&https://www.jinchutou.com/info-0-23-1.html& target=&_blank& style=&font-family: 微软雅黑, &Microsoft YaHei&;&>https://www.jinchutou.com/info-0-23-1.html&/a>&br/>&/p>&p>&br/>&/p>" />
&span id=&_baidu_bookmark_start_2& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_start_4& style=&display: line-height: 0&>?&/span>&/p>&p>&span style=&font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>& & 鉴于本网发布稿件来源广泛、数量较多, 系统审核过程只针对存在明显违法有害内容(如色情、暴力、反动、危害社会治安及公共安全等公安部门明文规定的违法内容)进行处理,难以逐一核准作者身份及核验所发布的内容是否存在侵权事宜, 如果著作权人发现本网已转载或摘编了其拥有著作权的作品或对稿酬有疑议, 请及时与本网联系删除。&/span>&/p>&p>&strong style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 white-space: background-color: rgb(255, 255, 255);&>& & 侵权处理办法参考版权提示一文:&/strong>&a href=&https://www.jinchutou.com/h-59.html& target=&_blank& textvalue=&https://www.jinchutou.com/h-59.html&>https://www.jinchutou.com/h-59.html&/a>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>&&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>1、如涉及内容过多,需要发送邮箱,请电子邮箱到,我们会及时处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>2、系统一旦删除后,文档肯定是不能下载了的,但展示页面缓存需要一段时间才能清空,请耐心等待2-6小时;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>3、请版权所有人(单位)提供最起码的证明(证明版权所有人),以便我们尽快查处上传人;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>4、请文明对话,友好处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>5、为了杜绝以前再有类似的侵权事情,可以为我们提供相应的关键字,便于管理人员添加到系统后能有效排除和抵制与您(贵单位)相关版权作品上传;&/span>&/p>&p>&span id=&_baidu_bookmark_end_5& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_end_3& style=&display: line-height: 0&>?&/span>&/p>" />
&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>& & 为了维护合法,安定的网络环境,本着开放包容的心态共建共享金锄头文库平台,请各位上传人本着自律和责任心共享发布有价值的文档;本站客服对于上传人服务前,有以下几点可提前参阅:&/span>&/p>&p>&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>1、本站上传会员收益见:&a href=&https://www.jinchutou.com/h-36.html& target=&_blank&>https://www.jinchutou.com/h-36.html&/a> &/span>&/p>&p>2、本站不会为任何刚注册的上传会员特批解除上传限制,普通会员每天可以上传50份,值班经值会审核其上传内容,请自行观察自己上传的文档哪些在“临时转换中”(审核通过),哪些在审核拒绝中,连续坚持几天都没有任何文档被拒的情况下,根据文档质量和发布分类是否正常等考量合格后值班经理会特批升级会员等级,相应的权益也同时上升。&/p>&p>3、上传人本着友好、合作、共建、共享的原则,请耐心仔细的查看《&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>违禁作品内容处理规则》;&/a>&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>https://www.jinchutou.com/i-143.html&/a>&/p>&p>4、上传人可以观注本站公告,查看其它被公示永久封禁的原因&a href=&https://www.jinchutou.com/news-1.html& target=&_blank&>https://www.jinchutou.com/news-1.html&/a>&/p>&p>5、其它问题可以参阅上传常见问题指引:&a href=&https://www.jinchutou.com/info-0-25-1.html& target=&_blank&>https://www.jinchutou.com/info-0-25-1.html&/a>&/p>" />查看: 3634|回复: 13
用STM32实现函数信号发生器
主题帖子精华
新手入门, 积分 36, 距离下一级还需 -16 积分
在线时间0 小时
用STM32做函数信号发生器,用DAC描点的方式显示出方波,正弦波,锯齿波,通过按键的方式改变波形频率幅度相位,谁有这样的程序,跪求
自己慢慢看,,,,
[mw_shl_code=c,true]#ifndef __BSP_WAVEMAKER_H
#define __BSP_WAVEMAKER_H
#include "stm32f10x.h"
#define DAC_DHR12RD_Address
#define DAC_DHR8R1_Address
#define DAC_DHR12R1_Address
/* DMA 传输数据长度 */
DMA_BufferSize_36
DMA_BufferSize_50
DMA_BufferSize_100
/* 波形类型 * ...
主题帖子精华
中级会员, 积分 466, 距离下一级还需 34 积分
在线时间56 小时
自己慢慢看,,,,
[C] 纯文本查看 复制代码#ifndef __BSP_WAVEMAKER_H
#define __BSP_WAVEMAKER_H
#include \"stm32f10x.h\"
#define DAC_DHR12RD_Address
#define DAC_DHR8R1_Address
#define DAC_DHR12R1_Address
/* DMA 传输数据长度 */
DMA_BufferSize_36
DMA_BufferSize_50
DMA_BufferSize_100
/* 波形类型 */
= 0, /* 矩形波 */
= 1, /* 正弦波 */
= 2, /* 三角波 */
/* 锯齿波 */
WT_NOISE = 4,
/* 正弦波 */
typedef struct
uint32_t F
uint16_t A
/* 三角波 */
typedef struct
uint16_t F
uint16_t A
/* 锯齿波 */
typedef struct
uint32_t F
uint16_t A
/* 矩形波 */
typedef struct
uint32_t F
uint16_t A
/* 噪声 */
typedef struct
uint16_t F
uint16_t A
extern SIN_T
extern RECT_T
extern SAW_T
extern NOISE_T
extern TRIA_T
void InitWaveMaker(void);
void SetupWaveType(uint8_t _ucType,uint32_t _ulFrequency,uint16_t _usAmplitude,
uint8_t _ucDutyCycle);
[C] 纯文本查看 复制代码#include \"stm32f10x.h\"
#include &stdio.h&
#include \"stdlib.h\"
#include \"bsp_WaveMaker.h\"
#include \"arm_math.h\"
/*正弦波*/
/*矩形波*/
/*锯齿波*/
/*三角波*/
uint16_t g_Wave[100];
/*******************************************************************************
* 函数名: InitWaveMaker
* 功能说明:初始化波形发生器。
*******************************************************************************/
void InitWaveMaker(void)
GPIO_InitTypeDef GPIO_InitS
DAC_InitTypeDef DAC_InitS
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
/*初始化DAC 通道1 */
DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_N
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_E
DAC_Init(DAC_Channel_1, &DAC_InitStructure);
DAC_DMACmd(DAC_Channel_1, ENABLE);
/* 配置PA4为DAC_OUT1
GPIO_InitStructure.GPIO_Pin =
GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
*********************************************************************************************************
* 函 数 名: InitWaveFreq(uint32_t _usFrequency, uint8_t _ucDMABuffuerSize)
* 功能说明: 用于初始化各种波形的产生
参:_usFrequency
表示要产生波形的触发频率,
_ucDMABuffuerSize 表示DMA要传输的数据数。
* 返 回 值: 无
*********************************************************************************************************
void InitWaveFreq(uint32_t _usFrequency, uint8_t _ucDMABuffuerSize)
DMA_InitTypeDef DMA_InitS
/*初始化定时器*/
TIM_PrescalerConfig(TIM6, 0, TIM_PSCReloadMode_Update);
TIM_SetAutoreload(TIM6,
_usFrequency);
TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);
/*初始化DMA */
DMA_DeInit(DMA2_Channel3);
DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12R1_A
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&g_W
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = _ucDMABuffuerS
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_D
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_E
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfW
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfW
DMA_InitStructure.DMA_Mode = DMA_Mode_C
DMA_InitStructure.DMA_Priority = DMA_Priority_L
DMA_InitStructure.DMA_M2M = DMA_M2M_D
DMA_Init(DMA2_Channel3, &DMA_InitStructure);
DMA_Cmd(DMA2_Channel3, ENABLE);
*********************************************************************************************************
* 函 数 名: SetupWaveType
* 功能说明: 用于建立产生各种波形
参:_ucType
表示要产生的波形的类型
_ulFrequency 表示波形的触发频率
_usAmplitude 表示波形的幅值
_ucDutyCycle 表示矩形波的占空比
* 返 回 值: 无
*********************************************************************************************************
void SetupWaveType(uint8_t _ucType,uint32_t _ulFrequency,uint16_t _usAmplitude,
uint8_t _ucDutyCycle)
TIM_Cmd(TIM6, DISABLE);
DAC_Cmd(DAC_Channel_1, DISABLE);
switch (_ucType)
case WT_RECT:
/* 方波 */
InitWaveFreq(720000 / _ulFrequency, DMA_BufferSize_100);
/*要先初始化这个*/
for (i = 0; i & _ucDutyC i++)
g_Wave[i] = _usA
for (i = _ucDutyC i & 100; i++)
g_Wave[i] = 0;
case WT_SIN:
/* 正弦波 */
InitWaveFreq(720000 / _ulFrequency,DMA_BufferSize_100);
for (i = 0; i & DMA_BufferSize_100; i++)
g_Wave[i] = 1024+_usAmplitude*sin(2*3.*i/100);
case WT_SAW:
/* 锯齿波 */
InitWaveFreq(720000 / _ulFrequency,DMA_BufferSize_100);
for (i = 0; i & DMA_BufferSize_100; i++)
g_Wave[i] = 100 + i*_usA
case WT_TRIA:
/* 三角波*/
InitWaveFreq(720000 / _ulFrequency,DMA_BufferSize_100);
for (i = 0; i & DMA_BufferSize_100; i++)
g_Wave[i] = 100 + abs(50-i)*_usA
case WT_NOISE:
InitWaveFreq(720000 / _ulFrequency,DMA_BufferSize_100);
for (i = 0; i & DMA_BufferSize_100; i++)
g_Wave[i] = rand()%_usA
DAC_Cmd(DAC_Channel_1, ENABLE);
TIM_Cmd(TIM6, ENABLE);
[C] 纯文本查看 复制代码//初始化显示的波形是方波
g_Rect.Frequency = 10000;
g_Rect.Amplitude = 2000;
g_Rect.DutyCycle = 50;
InitWaveMaker();
SetupWaveType(WT_RECT,g_Rect.Frequency,g_Rect.Amplitude,g_Rect.DutyCycle);
//产生波形
主题帖子精华
新手入门, 积分 36, 距离下一级还需 -16 积分
在线时间0 小时
回复【2楼】WZTENG:
---------------------------------
这是完整的还是主程序啊,一窍不通啊,能不能给个联系方式啊,拜托了大神~
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间1 小时
回复【2楼】WZTENG:
---------------------------------
大神,可不可以把程序分享出来,拜托了大神
主题帖子精华
中级会员, 积分 466, 距离下一级还需 34 积分
在线时间56 小时
&回复【4楼】 liaobin :
---------------------------------
在主函数中增加下面的语句就行了,要修改频率、幅值、占空比等参考下面的结构体自己改就行了,g_Wave放在是数据的值。看bsp_WaveMader.c的函数说明就可以了。SetupWaveType()我自己进行了上移操作当初是为了做示波器时用的。
//初始化显示的波形是方波
g_Rect.Frequency = 10000; &//频率
g_Rect.Amplitude = 2000; & //幅值
g_Rect.DutyCycle = 50; & & //占空比
InitWaveMaker(); & & & & & //初始化
SetupWaveType(WT_RECT,g_Rect.Frequency,g_Rect.Amplitude,g_Rect.DutyCycle); &//产生波形
12:07 上传
点击文件名下载附件
1.38 KB, 下载次数: 646
12:07 上传
点击文件名下载附件
4.87 KB, 下载次数: 267
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间1 小时
回复【5楼】WZTENG:
---------------------------------
谢谢分享
主题帖子精华
初级会员, 积分 85, 距离下一级还需 115 积分
在线时间4 小时
回复【5楼】WZTENG:
---------------------------------
哥们还在吗,我在研究你的这个程序,发现有个小问题,就是把幅值给到满值4095的时候,会有问题
比如,我把占空比调成100,幅值4095的时候并不能输出3.3V,大约是个0.8V的样子
调成4020的时候能达到3.27V左右,如果再调高,就不成了,会是0.xV,请问这是个什么原因?正常情况下不应该是4095对应3.3V吗
主题帖子精华
中级会员, 积分 466, 距离下一级还需 34 积分
在线时间56 小时
回复【7楼】yangzhen86:
---------------------------------
我有对信号进行了上移操作,比如
g_Wave&=&1024+_usAmplitude*sin(2*3.*i/100);
g_Wave&=&100&+&abs(50-i)*_usA
其中就是我上移的量,你把它去掉就行了。你输入4095加上前面的偏移量就超出了4095所以高部分没了只剩低部分出现0.8V是正常的。
主题帖子精华
初级会员, 积分 85, 距离下一级还需 115 积分
在线时间4 小时
回复【8楼】WZTENG:
---------------------------------
可是在方波的时候好像没看到上移啊
g_Wave&=&_usA
这样写的话,不就是直接给的么
主题帖子精华
中级会员, 积分 466, 距离下一级还需 34 积分
在线时间56 小时
回复【9楼】yangzhen86:
---------------------------------
理论上是没错的,实际用示波器测量一下波形,DAC的性能没认真看过手册,具体什么原因现在也不知道。
主题帖子精华
初级会员, 积分 85, 距离下一级还需 115 积分
在线时间4 小时
您现在那里有没有这个问题?
我再去研究下
主题帖子精华
初级会员, 积分 57, 距离下一级还需 143 积分
在线时间16 小时
还在吗? ,请问一下,你程序中用定时器是什么作用?
雨后的彩虹 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
雨后的彩虹 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
Powered by

我要回帖

更多关于 stm32矩阵键盘 的文章

 

随机推荐