一、实验设备

PC机一台、实验箱一台。

二、实验内容

由定时器6溢出信号作为触发信号,控制DAC1(PA4) 循环输出阶梯波形信号,DAC1需要的数据使用DMA方式提供。实现图1的波形周期输出。

图1 理想实验结果波形图

三、实验过程

①先在CUBE软件中进行硬件的图形化配置,选择STM32F407ZE芯片后,先进行常规的RCC和SYS设置,并配置时钟树使得HCLK为168MHz,在项目管理中进行项目的命名、存放地址、IDE等配置。

图2 时钟树配置

②分析实验得,需开启定时器来作为DAC的触发,配置定时器周期为实验要求的1s,并开启更新事件(定时器配置如图3所示),开启DAC输出(如图4所示),并设置触发方式为定时器触发(如图5所示),以及DMA传输方式(如图6所示)的设置。

图3 定时器的配置

图4 DAC输出引脚配置

图5 DAC触发方式配置

图6 DMA传输方式的开启

③生成配置代码,进入到KEIL中完成相关功能代码,先进行KEIL的常规配置,设置晶振频率为8MHz,并设置硬件调试模式为J-LINK/J-TRACE Cortex,根据模拟电压波形为1V或2V,根据公式计算出对应的数字电压值,定义DAC输出的数组(如下代码所示),并输入DAC输出函数和定时器开启函数(如代码所示),编译下载后,进行硬件连线从而实现实验功能。

uint16_t dac_data[3]={0,1241,2482};
MX_GPIO_Init();
MX_DMA_Init();
MX_DAC_Init();
MX_TIM6_Init();
HAL_DAC_Start_DMA(&hdac,DAC_CHANNEL_1,(uint32_t*)dac_data,3,DAC_ALIGN_12B_R);
HAL_TIM_Base_Start(&htim6);

四、实验收获

①学会了DAC实际输出电压和软件输入数值的转化公式:实际电压=参考电压*(软件输入数值/2的寄存器默认位宽次方),其中STM32中默认参考电压为3.3V,而寄存器默认位宽为12位,所以实际电压=3.3V/(软件输入数值/4096),该实验中需要1V的电压时,软件输入数值约等于1241,而需要2V电压时,软件输入数值约等于2482.

②学会了在CUBE上的DAC使用定时器更新触发来输出信号、并采用DMA传递数据的配置和调用,学会了KEIL软件中DAC输出函数和定时器的开启。

③学会了在KEIL软件中使用DEBUG软件进行单步执行,并观察相关变量数值变化的方法。

单片机实验三(D/A+DMA实验)相关推荐

  1. 基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...

    20183411 李丞灏 2020-2021 <python程序设计> 实验三 加密传输文件 实验报告 课程:<Python程序设计> 班级: 1834 姓名: 李丞灏 学号: ...

  2. 计算机网络实验三—— Cisco Packet Tracer 实验

    计算机网络实验三-- Cisco Packet Tracer 实验 CPT 软件使用简介 一.直接连接两台 PC 构建 LAN 二.用交换机构建 LAN 机器名 IP 子网掩码 ✎ 问题 ✎ 试一试 ...

  3. 实验三 ORI指令设计实验【计算机组成原理】

    实验三 ORI指令设计实验[计算机组成原理] 前言 推荐 实验三 ORI指令设计实验 一.实验目的 二.实验环境 三.实验原理 四.实验任务 五.实验思考 实验三 代码 define IF ID EX ...

  4. 计算机组成原理微控器功能,(计算机组成原理)实验三微控器实验.ppt

    文档介绍: 计算机组成原理课程设计 实验三.微控器实验 葛扩院廖萝丽斯节宽裔萌宛敢蜘祭癌颂导罪仍囚誓棋尹侈速爹详凑移悸董(计算机组成原理)实验三微控器实验(计算机组成原理)实验三微控器实验 实验三微控 ...

  5. bpsk传输系统实验matlab,实验三 BPSK 传输系统综合实验 2

    通信原理实验 实验三 BPSK 传输系统综合实验 一.实验原理 (一)BPSK调制 理论上二进制相移键控(BPSK)可以用幅度恒定,而其载波相位随着输入信号m(1.0码)而改变,通常这两个相位相差18 ...

  6. linux系统进程调度算法实验,操作系统实验三、进程调度算法实验

    实验三.进程调度算法实验 3.1 实验目的 加深对进程调度概念的理解,体验进程调度机制的功能,了解Linux 系统中进程 调度策略的使用方法.练习进程调度算法的编程和调试技术. 3.2 实验说明 在 ...

  7. 数据库原理实验三 数据库综合设计实验 实验报告

    实验三 数据库系统设计综合实验 1.实验目的通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统. 2.实验要求熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的 ...

  8. 计算机组成原理实验三报告,计算机组成原理实验三报告

    计算机组成原理实验三报告 实 验 报 告 三课 程 计算机组成原理 姓 名 学 号实验项目 存储器实验 同组姓名 学 号指导教师 专业班级 计算机科学与技术 09 实验时间 2011-6-6实验三 存 ...

  9. 计算机组成原理脱机运算器实验数据,实验三:脱机运算器实验报告.pdf

    大连理工大学大连理工大学 本科实验报告本科实验报告 课程名称 计算机组成原理实验 学院 系 软件学院 专 业 软件工程 班 级 0907 英 学 号 200892497 学生姓名 刘云伟 2011 年 ...

  10. 计算机组成原理_实验三:主存储器原理实验

    实 验 报 告 课程名称:计算机组成原理物理实验 实验项目:主存储器原理实验 实验仪器:数据通路板.控制信号板 一.(PC)→ R2 1. ( PC ) → BUS PC - BUS 2. BUS → ...

最新文章

  1. C语言学习之有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1
  2. 贴一个CMemDC 代码,这东西真不错噢,短小精悍,可谓极品
  3. vivo C/C++工程师 HR视频面试问题总结20180807
  4. redhat 6.6 安装 (LVM)
  5. Luogu2619[国家集训队2] Tree I
  6. 笔记系列------sqlloader的使用
  7. 参加京东管培生的网上测试笔试,需要注意什么?
  8. SpringBean的生命周期
  9. 7-6 古风排版 (20分)
  10. 求斐波那契数列的三种方法
  11. 重复工作到底有没有意义
  12. 9:参数校验-Java Spring
  13. C语言求23阶行列式,AX=0通解,施密特正交化
  14. gpio引脚介绍 树莓派3b_树莓派4的GPIO接口介绍
  15. mathtype中如何添加一个圆圈中间一个减号的符号
  16. 经典同步时序逻辑电路分析汇总(第六道)(同步四进制可逆加减法计数器)
  17. 宋氏极简美学的编码风格
  18. Linux操作系统渗透测试
  19. Python细枝末节个人知识记录
  20. Unity高频面试题总结

热门文章

  1. Redis缓存过期和淘汰策略
  2. 如何在Windows系统上制作U盘启动盘?
  3. 怎样使用pdf转换器?一篇文章教会你
  4. Win10快捷键,管多
  5. 实现一个文字识别(图片转文字)工具
  6. 电子商务购物网站的设计与实现(论文+源码)_kaic
  7. 编程参考- 重名符号的链接问题
  8. Python批量裁剪图形外围空白区域-续
  9. 【虹科讲座预告】企业如何防止基于USB的数据外泄
  10. 了解ZigBee以及硬件环境