前言:
前面记录了一下ADC的使用,这里记录一些我对DAC的学习,本次的功能是为了把ADC采集到的电压完好的赋给PA4管脚。
STM32Cubemx:
将PA4选择为DAC的输出管脚。
我们点击左侧的DAC,然后进行以下配置
到此为止STM32Cubemx的配置就OK了,点击生成代码即可。
代码部分:
因为我们选择了PA4,而这个PA4是DAC1的CHANNEL_1通道,所以在初始化的时候,我们使用这句代码
HAL_DAC_Start(&hdac1,DAC1_CHANNEL_1); //将DAC打开
编写我们的DAC输出函数
void dac_set(float vol)
{
uint16_t temp;
temp = (4096*vol/3.3f); //将十进制转化为12位2进制数
HAL_DAC_SetValue(&hdac1,DAC_CHANNEL_1,DAC_ALIGN_12B_R,temp);
}
因为我的ADC读取是在while(1)里面直接调用的,所以我也就把DAC输出函数放在了while(1)里面
adc_value1 = getADC(&hadc1); //这个是我之前代码里用来读取电压的
dac_set(adc_value1); //将读取到的电压再赋给PA4引脚