随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

DAC

DAC的功能:可以输出电压(无触发,设置DAC转换值,DAC使能更新寄存器和启动转换)或者波形(连续转换,用DMA发送数据,定时器触发)。首先有个正弦波波形的数组,内存到DAC的DMA通道不断的将正弦波数组数据送到DAC转换的数据寄存器,设定定时器触发(还有外部触发和软件触发),在定时时间到之后自动触发DAC转换,只要配置了DAC,相应管教就会一直输出,为了降低功耗和干扰,在初始化时可以设置管脚为模拟输入。https://blog.csdn.net/vca821/article/details/80697776

https://blog.csdn.net/qq_38410730/article/details/80095881

https://wenku.baidu.com/view/b3abdf2ea300a6c30c229ff3.html

DAC输出电压
当DAC的参考电压位VREF+的时候,数字输入经过DAC被线性地转换为模拟电压输出,其范围为0到VREF+。任一DAC通道引脚上的输出电压满足下面的关系:DAC输出 = VREF x (DOR / 4095)。输出某个电压:DValue=(V/3300)*65536,DAC_SetChannel1Data(DAC_Align_12b_R, DValue);可以设置软件触发DAC_Trigger_Software

void Dac1_Set_Vol(uint16_t vol)
{

  uint16_t temp; temp = (uint16_t) ((vol/3.3 +0.000001) * 4096); //注意模拟量运算注意精度问题

   DAC_SetChannel1Data(DAC_Align_12b_R,temp);

  DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);

}

关于驱动能力:

1 DAC_OutputBuffer使能

2 参考电压的电源驱动能力

对其方式:

触发源:

 

posted on   杰瑞鼠  阅读(1080)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示