DA

DA

怎么配置dac和Dma才能生成正弦波或者是不用dma

回复

问题困惑一梦三四年 发起了问题 • 1 人关注 • 0 个回复 • 67 次浏览 • 2019-12-02 15:15 • 来自相关话题

程序中DA配置正确后,开启DA但是程序不设置DA的value值,电压会输出多少?

经验分享find_all 回复了问题 • 3 人关注 • 3 个回复 • 2654 次浏览 • 2019-03-29 14:08 • 来自相关话题

stm32cube中文教程:DAC输出模拟电压,用12位精度DA最大3.3v,学习笔记

软件教程admin 发表了文章 • 0 个评论 • 6331 次浏览 • 2014-10-14 00:11 • 来自相关话题

用stm32cubemx生成DA输出真对stm32f407的模拟输出电压,很简单
首先,配置时钟,168M,我用的stm32f407discovery板。
这些配置操作我以前提到过,不懂的可以在这个论坛里找找,有图文注释的。
直接点取DAC的通道1,然后去configariton里面配置DAC,其实无需配置,不用改任何东西
生成代码。
打开main文件,找到main函数中初始化后添加:
这个是我自己的例子,你可以适当修改


/[i][size=16]-4- Enable DAC Channel1 [/size]#########################[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[/i]/ [/size][/size][/size][/size][/size][/size][/size]
if(HAL_DAC_Start(&hdac, DAC_CHANNEL_1) != HAL_OK)
{
/[i] Start Error [/i]/
Error_Handler();
}

/[i] USER CODE END 2 [/i]/

/[i] USER CODE BEGIN 3 [/i]/
/[i] Infinite loop [/i]/
while (1)
{


HAL_Delay (1);
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_6 );
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, value );
if(!flag)
{ value ++; if(value==0xfff){ flag=1; }} else { value--;if(!value) flag=0; }
}

代码注释:第一个意思是开启dac的通道1.
while中的意思是:设置DA的值,我用的12位精度,右对齐,值是value,通道DAC_CHANNEL_1
值value从0增加到4095即0xfff,然后从0xfff减小到0,无限循环,哦,上面还有个指示灯,不过
这么高的频率是指示不出来的。是i我调试其他的时候加的,可以无视它。

用示波器 测量PA4管脚(这个就是DA的输出口1),会看到波形类似三角波,电压是从0升到3.3然后再降到0v,ok,结束实验 查看全部
用stm32cubemx生成DA输出真对stm32f407的模拟输出电压,很简单
首先,配置时钟,168M,我用的stm32f407discovery板。
这些配置操作我以前提到过,不懂的可以在这个论坛里找找,有图文注释的。
直接点取DAC的通道1,然后去configariton里面配置DAC,其实无需配置,不用改任何东西
生成代码。
打开main文件,找到main函数中初始化后添加:
这个是我自己的例子,你可以适当修改


/[i][size=16]-4- Enable DAC Channel1 [/size]#########################[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[/i]/ [/size][/size][/size][/size][/size][/size][/size]
if(HAL_DAC_Start(&hdac, DAC_CHANNEL_1) != HAL_OK)
{
/[i] Start Error [/i]/
Error_Handler();
}

/[i] USER CODE END 2 [/i]/

/[i] USER CODE BEGIN 3 [/i]/
/[i] Infinite loop [/i]/
while (1)
{


HAL_Delay (1);
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_6 );
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, value );
if(!flag)
{ value ++; if(value==0xfff){ flag=1; }} else { value--;if(!value) flag=0; }
}

代码注释:第一个意思是开启dac的通道1.
while中的意思是:设置DA的值,我用的12位精度,右对齐,值是value,通道DAC_CHANNEL_1
值value从0增加到4095即0xfff,然后从0xfff减小到0,无限循环,哦,上面还有个指示灯,不过
这么高的频率是指示不出来的。是i我调试其他的时候加的,可以无视它。

用示波器 测量PA4管脚(这个就是DA的输出口1),会看到波形类似三角波,电压是从0升到3.3然后再降到0v,ok,结束实验

怎么配置dac和Dma才能生成正弦波或者是不用dma

回复

问题困惑一梦三四年 发起了问题 • 1 人关注 • 0 个回复 • 67 次浏览 • 2019-12-02 15:15 • 来自相关话题

程序中DA配置正确后,开启DA但是程序不设置DA的value值,电压会输出多少?

回复

经验分享find_all 回复了问题 • 3 人关注 • 3 个回复 • 2654 次浏览 • 2019-03-29 14:08 • 来自相关话题

stm32cube中文教程:DAC输出模拟电压,用12位精度DA最大3.3v,学习笔记

软件教程admin 发表了文章 • 0 个评论 • 6331 次浏览 • 2014-10-14 00:11 • 来自相关话题

用stm32cubemx生成DA输出真对stm32f407的模拟输出电压,很简单
首先,配置时钟,168M,我用的stm32f407discovery板。
这些配置操作我以前提到过,不懂的可以在这个论坛里找找,有图文注释的。
直接点取DAC的通道1,然后去configariton里面配置DAC,其实无需配置,不用改任何东西
生成代码。
打开main文件,找到main函数中初始化后添加:
这个是我自己的例子,你可以适当修改


/[i][size=16]-4- Enable DAC Channel1 [/size]#########################[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[/i]/ [/size][/size][/size][/size][/size][/size][/size]
if(HAL_DAC_Start(&hdac, DAC_CHANNEL_1) != HAL_OK)
{
/[i] Start Error [/i]/
Error_Handler();
}

/[i] USER CODE END 2 [/i]/

/[i] USER CODE BEGIN 3 [/i]/
/[i] Infinite loop [/i]/
while (1)
{


HAL_Delay (1);
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_6 );
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, value );
if(!flag)
{ value ++; if(value==0xfff){ flag=1; }} else { value--;if(!value) flag=0; }
}

代码注释:第一个意思是开启dac的通道1.
while中的意思是:设置DA的值,我用的12位精度,右对齐,值是value,通道DAC_CHANNEL_1
值value从0增加到4095即0xfff,然后从0xfff减小到0,无限循环,哦,上面还有个指示灯,不过
这么高的频率是指示不出来的。是i我调试其他的时候加的,可以无视它。

用示波器 测量PA4管脚(这个就是DA的输出口1),会看到波形类似三角波,电压是从0升到3.3然后再降到0v,ok,结束实验 查看全部
用stm32cubemx生成DA输出真对stm32f407的模拟输出电压,很简单
首先,配置时钟,168M,我用的stm32f407discovery板。
这些配置操作我以前提到过,不懂的可以在这个论坛里找找,有图文注释的。
直接点取DAC的通道1,然后去configariton里面配置DAC,其实无需配置,不用改任何东西
生成代码。
打开main文件,找到main函数中初始化后添加:
这个是我自己的例子,你可以适当修改


/[i][size=16]-4- Enable DAC Channel1 [/size]#########################[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[size=16]#[/i]/ [/size][/size][/size][/size][/size][/size][/size]
if(HAL_DAC_Start(&hdac, DAC_CHANNEL_1) != HAL_OK)
{
/[i] Start Error [/i]/
Error_Handler();
}

/[i] USER CODE END 2 [/i]/

/[i] USER CODE BEGIN 3 [/i]/
/[i] Infinite loop [/i]/
while (1)
{


HAL_Delay (1);
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_6 );
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, value );
if(!flag)
{ value ++; if(value==0xfff){ flag=1; }} else { value--;if(!value) flag=0; }
}

代码注释:第一个意思是开启dac的通道1.
while中的意思是:设置DA的值,我用的12位精度,右对齐,值是value,通道DAC_CHANNEL_1
值value从0增加到4095即0xfff,然后从0xfff减小到0,无限循环,哦,上面还有个指示灯,不过
这么高的频率是指示不出来的。是i我调试其他的时候加的,可以无视它。

用示波器 测量PA4管脚(这个就是DA的输出口1),会看到波形类似三角波,电压是从0升到3.3然后再降到0v,ok,结束实验