使用CubeMX配置HAL库编程DAC(数字信号转化为模拟信号)很简单只需要三步
第一步:CubeMx配置,我这里的图片配置了两个DAC输出,第一个DAC输出对应PA4引脚,第二个DAC输出对应的PA5引脚。(如果使用一个的话完全可以配置一个引脚DAC,两个独立互不干扰)
第二步:在main主函数里进行初始化,我的是跑了FreeRTOS,main主函数有其他相关配置,不用管,main主函数的while循环外,加上这一句初始化即可
HAL_DAC_Start(&hdac,DAC_CHANNEL_1); //打开DAC(1)
HAL_DAC_Start(&hdac,DAC_CHANNEL_2); //打开DAC(2)
第三步:运行程序的循环中调用DAC输出功能函数,我这里设置了一个变量PumpSpeed,通过调节PumpSpeed变量数值的大小控制输出电压的大小从而控制水泵的转速,设置PumpSpeed变量等于4095,输出电压为10v,设置PumpSpeed变量等于4095,输出电压为10v(水泵转速最快),设置PumpSpeed变量等于2047,输出电压为5v,设置PumpSpeed变量等于2047,输出电压为0v(水泵转速为0不转),我的开发板DAC输出口是0~10v,其他开发板类似,如4095对应3.3v,0对应0v。
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_2, DAC_ALIGN_12B_R, PumpSpeed); //设置发生的电压