STMCU小助手
发布时间:2022-2-6 22:25
|
1.概述STM32DAC -12位数字输入电压输出(8/12对齐方式可编程) -支持DMA -数据是由DAC_DHRX寄存器经过一个或三个APB1时钟周期后传入DAC_DORX,不可以对DAC_DORX寄存器操作,再经过T(和电源电压,模拟输出负载有关。典型3u,最大6u)后输出有效,1/T可知最大的转换速度为333KHZ左右 -DACx_OUT=Vref*DORx/4095. -触发方式可选(软件或者硬件触发,其中硬件触发又包括定时器和外部中断俩大类) -有噪声生成和三角波生成功能(需要使能触发) -双DAC通道转换功能 2.STM32F407库函数总结 /* Function used to set the DAC configuration to the default reset state *****/ void DAC_DeInit(void); /* DAC channels configuration: trigger, output buffer, data format functions */ void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct); void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct); void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState); void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState);软件出发使能函数 void DAC_DualSoftwareTriggerCmd(FunctionalState NewState); void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState); 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);设置多通道数据 uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel); /* DMA management functions ***************************************************/ void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState); /* Interrupts and flags management functions **********************************/ void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState); FlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG); void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG); ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT); void DAC_ClearITPendingBit(uint32_t DAC_Channel, uint32_t DAC_IT); 3.输出模拟电压配置过程 (1)开启PA时钟设置PA4为模拟输入,GPIO时钟线AHB1,STM32中复用DAC_OUT1/2分别复用为PA4/5 (2)使能DAC时钟,时钟线为APB1 (3)初始化DAC,DAC_Init();包含以下参数 .DAC_LFSRUnmask_TriangleAmplitude=设置屏蔽和幅值选择器(做波形发生器时使用) .DAC_OutputBuffer=输出缓存一般不用 .DAC_Trigger=是否使用触发功能 .DAC_WaveGeneration=是否使用波形发生(三角和噪声波) (4)使能DAC,DAC_CMD(); (5)设置DACx输出值:DAC_Setchannle1Data() (6)读取DAC:DAC_GetDataoutputValue(); |
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
实战经验 | ClassB功能安全认证代码与应用代码分区的实现要点
STM32G0 系列 I2C 通信异常典型案例分析与解决方案总结
经验分享 | LAT1490 两个STM32G0 I2C 通信异常的案例分析
经验分享 | STM32G0 I2C bootloader Go 命令后调试连接失败:DBG_SWEN 位复位修复
经验分享 | STM32G0B1 待机模式意外唤醒深度解析:RTC 结构体未初始化的隐形坑
经验分享 | STM32G0B1 待机模式意外唤醒深度解析:RTC 结构体未初始化的隐形坑
微信公众号
手机版