你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32学习笔记——DAC

[复制链接]
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 *****/
- s- f; w  x/ l( U% M) P: o1 z, `5 Lvoid DAC_DeInit(void);
/* DAC channels configuration: trigger, output buffer, data format functions */8 q% N9 d: w/ U; y5 j
void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct);
$ ^( v+ j. n3 L3 U  v' ovoid DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct);
8 R2 c$ [. Q6 M& M/ O* Evoid DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState);
  _( N) Q  s9 ~4 svoid DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState);软件出发使能函数
' O7 g& j0 n0 P/ H7 }+ l# |9 }void DAC_DualSoftwareTriggerCmd(FunctionalState NewState);; P4 Z# l% \7 b# O* o0 \5 g
void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState);
. f" B5 p" g8 ^# S8 a" kvoid DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data);5 b" n5 X, r5 C/ B
void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data);
# ]! ^- W3 C$ {+ }7 Avoid DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1);设置多通道数据2 k7 [, l( g, _% U5 j
uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel);
/* DMA management functions ***************************************************/
% g$ b) p2 [0 P, kvoid DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState);
/* Interrupts and flags management functions **********************************/! x6 L5 m$ J3 X& ?
void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState);
! ?+ T. M8 D2 S6 F- L0 D. F3 qFlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG);2 z- R+ ~& X1 d: c9 j2 T' }! [
void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG);8 r% E4 C8 Z8 L9 l) n) R- r1 }6 z; Z
ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT);
0 _1 E1 M" J, |7 ]! X  bvoid 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=设置屏蔽和幅值选择器(做波形发生器时使用); r1 c; l4 c" F- }4 r- W1 m9 ~8 \
    .DAC_OutputBuffer=输出缓存一般不用
: o3 K* p6 ~4 n- z4 o+ ^; V5 x     .DAC_Trigger=是否使用触发功能- L, `) l7 ]& _( y+ [
    .DAC_WaveGeneration=是否使用波形发生(三角和噪声波)
(4)使能DAC,DAC_CMD();
(5)设置DACx输出值:DAC_Setchannle1Data()
(6)读取DAC:DAC_GetDataoutputValue();

4 r- r9 R7 S+ S2 I% e8 J
赞 收藏 评论0 发布时间:2022-2-6 22:25

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版