STM32 DAC知识.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32 DAC知识

STM32 DAC?2014-02-11 11:23:52分类:?嵌入式STM32?的?DAC?模块(数字/模拟转换模块)是?12?位数字输入,电压输出型的DAC。DAC?可以配置为?8?位或?12?位模式,也可以与?DMA?控制器配合使用。DAC工作在?12?位模式时,数据可以设置成左对齐或右对齐。DAC?模块有?2?个输出通道,每个通道都有单独的转换器。在双DAC?模式下,2?个通道可以独立地进行转换,也可以同时进行转换并同步地更新?2?个通道的输出。DAC?可以通过引脚输入参考电压?VREF+以获得更精确的转换结果。STM32?的?DAC?模块主要特点有:①??2?个?DAC?转换器:每个转换器对应?1?个输出通道?②??8?位或者?12?位单调输出?③??12?位模式下数据左对齐或者右对齐?④??同步更新功能?⑤??噪声波形生成?⑥??三角波形生成?⑦??双?DAC?通道同时或者分别转换⑧??每个通道都有?DMA?功能?使用库函数的方法来设置?DAC?模块的通道?1?来输出模拟电压,其详细设置步骤如下:1)开启?PA?口时钟,设置?PA4?为模拟输入。STM32F103ZET6?的?DAC?通道?1?在?PA4?上,所以,我们先要使能?PORTA?的时钟,然后设置?PA4?为模拟输入。DAC?本身是输出,但是为什么端口要设置为模拟输入模式呢?因为一但使能?DACx?通道之后,相应的?GPIO?引脚(PA4?或者?PA5)会自动与?DAC?的模拟输出相连,设置为输入,是为了避免额外的干扰。使能?GPIOA?时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,?ENABLE?);????//使能?PORTA?时钟设置?PA1?为模拟输入只需要设置初始化参数即可:GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AIN;????????//模拟输入2)使能?DAC1?时钟。同其他外设一样,要想使用,必须先开启相应的时钟。?STM32?的?DAC?模块时钟是由?APB1提供的,所以我们调用函数?RCC_APB1PeriphClockCmd()设置?DAC?模块的时钟使能。?RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,?ENABLE?);????//使能?DAC?通道时钟?3)初始化?DAC,设置?DAC?的工作模式。该部分设置全部通过?DAC_CR?设置实现,包括:DAC?通道?1?使能、DAC?通道?1?输出缓存关闭、不使用触发、不使用波形发生器等设置。这里?DMA??初始化是通过函数?DAC_Init?完成的:void?DAC_Init(uint32_t?DAC_Channel,?DAC_InitTypeDef*?DAC_InitStruct)?参数设置结构体类型?DAC_InitTypeDef?的定义:typedef?struct{uint32_t?DAC_Trigger;?//设置是否使用触发功能uint32_t?DAC_WaveGeneration;?//设置是否使用波形发生uint32_t?DAC_LFSRUnmask_TriangleAmplitude;?//设置屏蔽/幅值选择器,这个变量只在使用波形发生器的时候才有用uint32_t?DAC_OutputBuffer;??//设置输出缓存控制位}DAC_InitTypeDef;实例代码:DAC_InitTypeDef?DAC_InitType;DAC_InitType.DAC_Trigger?=?DAC_Trigger_None;??//不使用触发功能??TEN1=0DAC_InitType.DAC_WaveGeneration?=?DAC_WaveGeneration_None;//不使用波形发生DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude?=?DAC_LFSRUnmask_Bit0;DAC_InitType.DAC_OutputBuffer?=?DAC_OutputBuffer_Disable?;??//DAC1?输出缓存关闭?DAC_Init(DAC_Channel_1,DAC_InitType);????//初始化?DAC?通道?14)使能?DAC?转换通道初始化?DAC?之后,理所当然要使能?DAC?转换通道,库函数方法是:DAC_Cmd(DAC_Channel_1,?ENABLE);???//使能?DAC15)设置?DAC?的输出值。通过前面?4?个步骤的设置,DAC?就可以开始工作了,我们使用?12?位右对齐数据格式,所以我们通过设置?DHR12R1,就可以在?DAC?输出引脚(PA4)得到

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档