历史上的今天
今天是:2025年02月12日(星期三)
2019年02月12日 | STM32-DAC简单使用方法
2019-02-12 来源:eefocus
前言:
最近在调试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函数输出对应的电压值。
史海拾趣
|
一、电阻的型号命名方法: 国产电阻器的型号由四部分组成(不适用敏感电阻) 第一部分:主称,用字母表示,表示产品的名字。如R表示电阻,W表示电位器。 第二部分:材料,用字母表示,表示电阻体用什么材料组成,T-碳膜、H-合成碳膜、 ...… 查看全部问答> |
|
我想用FPGA来控制PCF8563 可是我选择的是EP1C3T144 想用它驱动PCF8563的sda和scl 他的I/O驱动只有3.3V 可以用吗 怎么用?… 查看全部问答> |
|
转自千家网 BG7JWE 相信大家对现在的几块钱和十来二十块的电源不会陌生吧?同样,我也拆了不少。 现在的电源大致分两大类:电子开关电源和变压器电源。 开关电源,文字上的解释是:(转载自百度) 开关电源是利用现代电力电子技术,控制开关管开 ...… 查看全部问答> |
|
STM32是基于ARM Cortex-M3内核的芯片,专为要求高性能、低成本、低功耗的嵌入式应用设计的芯片。1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度。 我学的是STM32F103。它的内核为:ARM 32位的Cortex -M3 CPU,它的工作频率 ...… 查看全部问答> |




