前言:
最近在调试STM32L152芯片的DAC功能,本文总结下STM32L152芯片 DAC简单使用方法。
硬件平台:STM32L152
软件平台:keil v5+cubeMX
函数库:HAL库
DAC使用方法
实现:
1.DAC的初始化。
DAC_HandleTypeDef hdac;
void DAC_Init(void)
{
DAC_ChannelConfTypeDef sConfig;
/**DAC Initialization
*/
hdac.Instance = DAC;
if (HAL_DAC_Init(&hdac) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**DAC channel OUT1 config
*/
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;//输出缓存使能
if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
其中,DAC的时钟开启在void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)函数中。
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
{
GPIO_InitTypeDef GPIO_InitStruct;
if(hdac->Instance==DAC)
{
/* USER CODE BEGIN DAC_MspInit 0 */
/* USER CODE END DAC_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_DAC_CLK_ENABLE();
/**DAC GPIO Configuration
PA4 ------> DAC_OUT1
*/
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);//对应的DAC管脚配置。
/* USER CODE BEGIN DAC_MspInit 1 */
/* USER CODE END DAC_MspInit 1 */
}
}
void DAC_Trigger(uint16_t Value)
{
HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1 ,DAC_ALIGN_12B_R ,Value); //DAC的输出电压=Value*3.3/4096;
HAL_DAC_Start(&hdac, DAC_CHANNEL_1); //开启DAC
delay_ms(1000);
HAL_DAC_Stop(&hdac, DAC_CHANNEL_1);//关闭DAC
}
总结:上述简单介绍了DAC输出电压实现步骤,步骤为DAC初始化、开启DAC时钟、配置DAC管脚、调用DAC函数输出对应的电压值。
上一篇:STM32—进入STOP模式后功耗下不去问题
下一篇:关于STM32运行时程序卡在B.处的解决方法
推荐阅读最新更新时间:2024-03-16 16:23