[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx

上传人(卖家):最好的沉淀 文档编号:5716830 上传时间:2023-05-05 格式:DOCX 页数:5 大小:44.72KB
下载 相关 举报
[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx_第1页
第1页 / 共5页
[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx_第2页
第2页 / 共5页
[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx_第3页
第3页 / 共5页
[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx_第4页
第4页 / 共5页
[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、嵌入式系统设计(基于STM32F429)第 13 章课后题参考答案1. 常用的 DAC 电路结构有哪些? 答:权电阻网络 DAC 、R2R 倒 T 形电阻网络 DAC、电流型网络 DAC2. 分辨率为 12 位,参考电压为 3.3V 的 DAC,想要输出 1.2V 的电压,请问输出这一电压对应的数字信号是多少?答:(1.2/3.3)*4095 = 14893. STM32F429 微控制器的DAC 有哪些触发方式(转换启动方式)? 答:(1) 、软件触发:通过写 DAC 的数据保持寄存器 触发 DAC 转换(2) 、硬件信号触发: 通过定时器 TRGO 事件 或 外部中断线 9 触发。4. 请

2、问寄存器 DHR 和 DOR 之间有什么关系? 答:DHR:数据保持寄存器。可读写。DOR:数据输出寄存器。只读。 程序一般操作的是 DHR 寄存器。5. DAC 单通道的数据格式有哪些? 答:(1) 对于 DAC 单通道 x,有三种可能的方式。8 位右对齐:软件必须将数据加载到 DAC_DHR8Rx7:0位(存储到 DHRx11:4位)。12 位左对齐:软件必须将数据加载到 DAC_DHR12Lx15:4位(存储到 DHRx11:0位)。12 位右对齐:软件必须将数据加载到 DAC_DHR12Rx11:0位(存储到 DHRx11:0位)。(2) 对于 DAC 双通道,有以下可能的方式。8 位

3、右对齐:将DAC 通道 1 的数据加载到 DAC_DHR8RD7:0位(存储到DHR111:4位),将 DAC 通道 2 的数据加载到 DAC_DHR8RD15:8位(存储到 DHR211:4位)。12 位左对齐:将 DAC 通道 1 的数据加载到 DAC_DHR12RD15:4位(存储到 DHR111:0位),将 DAC 通道 2 的数据加载到 DAC_DHR12RD31:20位(存储到 DHR211:0位)。12 位右对齐:将 DAC 通道 1 的数据加载到 DAC_DHR12RD11:0位(存储到 DHR111:0位),将 DAC 通道 2 的数据加载到 DAC_DHR12RD27:16

4、位(存储到 DHR211:0位)。6. 软件如何启动一次 DAC 转换? 答:通过写 DAC 的 DHR 寄存器即可实现。有以下函数:void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data) void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data)void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1)7. 作为 DAC 的模拟信号输出通道的 GPIO 引脚需要怎么初始化

5、?以 DAC1 为例。答:GPIO_InitTypeDef GPIO_InitStructure;/*-第 1 步*/* 使 能 GPIOA 时 钟 */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);/* 使 能 DAC 时 钟 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);/*-第 2 步*/* DAC 的 GPIO 配 置 , 模 拟 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPI

6、O_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure);8. 编程序配置 STM32F429 微控制器的 DAC1 产生一个频率为 2kHz 的正弦波。答:1) 结合定时器中断实现。在每次定时器中断中写 DAC 数据保持寄存器启动 DAC 转换。教材中例 13.5,修改 TIM_Config(void)。TIM_TimeBaseStructure.TIM_Period = 2250-1;/ 采 样 频 率 = 40KHz TIM_

7、TimeBaseStructure.TIM_Prescaler = 0x0;/预分频,不分频 90M / (0+1) = 90M TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;/时钟分频系数TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);/向上计数模式2) 结合定时器和 DMA 实现。使用定时器溢出事件 作为 DAC 的转换触发信号。使用 DMA 将波形数据缓冲区中的数据源转移到 DA

8、C 数据保持寄存器中。#definePi3.1415926#definef1000/正弦波频率 2KHz#definefs20000/采样频率40KHz/* 波形数据*/uint16_t Sine_Table20;(1) DAC 配置函数此函数执行之后,定时器每次溢出都会触发一次 DAC 自动转换,DMA 控制转换的数据来源。void DAC_Mode_Init(void)uint32_t Idx = 0;/* 填充正弦波形数据,双通道右对齐*/ for (i = 0; i 20; i+)Sine_Table i = (uint16_t )(float)4095*(1+sin(2*i*Pi*

9、f /fs)/2);DAC_Config();/DAC 初始化DAC_TIM_Config();/定时器 初始化DAC_DMA_Config();/DMA 初始化(2) DAC 初始化函数static void DAC_Config(void)GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitStructure;/* 使 能 GPIOA 时 钟 */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);/* 使能 DAC 时钟 */RCC_APB1PeriphClock

10、Cmd(RCC_APB1Periph_DAC, ENABLE);/* DAC 的 GPIO 配置,模拟输入 */* DAC 的 GPIO 配 置 , 模 拟 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure);/* 配置 DAC 通道 1 */DAC_InitStructure.DAC_Trig

11、ger=DAC_TRIGGER;/ 使 用 TIM2 的 溢 出 触 发 DAC DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0; /屏蔽幅值设置DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None; / 不使用波形发生器DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Enable; /启用输出缓冲DAC_Init(DAC_CH1_CHANNEL, &DAC_InitStruct

12、ure);/* 使 能 通 道 1 由 PA4 输 出 */ DAC_Cmd(DAC_CH1_CHANNEL, ENABLE);(3) 定时器初始化static void DAC_TIM_Config(void)TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;/* 使 能 TIM2 时 钟 ,TIM2CLK 为 180M */ RCC_APB1PeriphClockCmd(DAC_TIM_CLK, ENABLE);/* TIM2 基本定时器配置 */TIM_TimeBaseStructure.TIM_Period = 2250-1;/ 采 样 频 率

13、= 40KHz TIM_TimeBaseStructure.TIM_Prescaler = 0x0;/ 预 分 频 , 不 分 频 90M / (0+1) = 90M TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;/时钟分频系数TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(DAC_TIM, &TIM_TimeBaseStructure);/* 配置 TIM2 触发源 */TIM_SelectOutputTrigger(DAC_TIM, TIM

14、_TRGOSource_Update);/* 使 能 TIM2 */ TIM_Cmd(DAC_TIM, ENABLE);/向上计数模式(4) DMA 初始化static void DAC_DMA_Config(void)DMA_InitTypeDef DMA_InitStructure;/* DAC1 使 用 DMA1 通 道 7 数 据 流 5 时 钟 */ RCC_AHB1PeriphClockCmd(DAC_DMA_CLK, ENABLE);/* 配 置 DMA2 */ DMA_InitStructure.DMA_Channel = DAC_CHANNEL;DMA_InitStructu

15、re.DMA_PeripheralBaseAddr = (uint32_t)(DAC_BASE+0x20);/外设数据地址DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t) Sine_Table ; / 内 存 数 据 地 址DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;/数据传输方向内存至外设DMA_InitStructure.DMA_BufferSize = 20;/ 缓 存 大 小 为 20 DMA_InitStructure.DMA_PeripheralInc = DMA_

16、PeripheralInc_Disable; /外设数据地址固定DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;/内存数据地址自增DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;/半字为单位DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord;/ 半字为单位DMA_InitStructure.DMA_Mode = DMA_Mode_Circula

17、r; DMA_InitStructure.DMA_Priority = DMA_Priority_High;/循环模式/高 DMA 通道优先级DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;DMA_Init(DAC_DMA_STREAM, &DMA_InitStructure);/* Enable DMA_Stream */ DMA_Cmd(DAC_DMA_STREAM, ENABLE);/* 使 能 DAC 的 DMA 请 求 */ DAC_DMACmd(DAC_CH1_CHANNEL, ENABLE);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文([嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] 第十三章.docx)为本站会员(最好的沉淀)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|