一个关于STM32的DAC输出的遗忘点

 众所周知熟练使用HAL库可以帮你解决不少stm32的开发难题,但是是谁让你陷入了这些难题,别问。

如上图所示,正常初始化这个模块后生成代码如下图所示;

* DAC init function */
void MX_DAC_Init(void)
{

  /* USER CODE BEGIN DAC_Init 0 */

  /* USER CODE END DAC_Init 0 */

  DAC_ChannelConfTypeDef sConfig = {0};

  /* USER CODE BEGIN DAC_Init 1 */

  /* USER CODE END DAC_Init 1 */

  /** DAC Initialization
  */
  hdac.Instance = DAC;
  if (HAL_DAC_Init(&hdac) != HAL_OK)
  {
    Error_Handler();
  }

  /** 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();
  }
  /* USER CODE BEGIN DAC_Init 2 */

  /* USER CODE END DAC_Init 2 */

}

但在这种情况下我们直接使用HAL_DAC_SetValue函数来配置通道输出模拟信号是无效的,因为既没有使GPIO引脚进入模拟输出状态,也没有开启外设通道,解决方法是添加这些代码

  /* USER CODE BEGIN DAC_Init 0 */
  HAL_DAC_MspInit(&hdac);
  /* USER CODE END DAC_Init 0 */
  /* USER CODE BEGIN DAC_Init 2 */
   HAL_DAC_Start(&hdac,DAC_CHANNEL_1);
   HAL_DAC_Start(&hdac,DAC_CHANNEL_2);
  /* USER CODE END DAC_Init 2 */

相关推荐

  1. 关于嵌入式系统一些名词小结(ARM/CORTEX/STM32等)

    2024-07-20 15:28:02       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 15:28:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 15:28:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 15:28:02       45 阅读
  4. Python语言-面向对象

    2024-07-20 15:28:02       55 阅读

热门阅读

  1. AI艺术创作:掌握Midjourney和DALL-E的技巧与策略

    2024-07-20 15:28:02       17 阅读
  2. 快速创建 vue 项目并添加 Dockerfile 文件

    2024-07-20 15:28:02       14 阅读
  3. C语言(7.4)

    2024-07-20 15:28:02       17 阅读
  4. 怎么降低美国服务器硬盘故障率?

    2024-07-20 15:28:02       18 阅读
  5. 智能听诊器:居家宠物健康管理新助手

    2024-07-20 15:28:02       13 阅读
  6. Springboo3中使用虚线程

    2024-07-20 15:28:02       17 阅读
  7. C#面:MVC中的TempData\ViewBag\ViewData区别?

    2024-07-20 15:28:02       18 阅读