[STM32U3] 【每周分享】【STM32U385RG 测评】+DAC输出三角波

[复制链接]
 楼主| LiuDW091 发表于 2025-7-22 15:45 | 显示全部楼层 |阅读模式
本帖最后由 LiuDW091 于 2025-7-22 15:56 编辑

#申请原创# #有奖活动# #申请开发板#[url=home.php?mod=space&uid=760190]@21小跑堂 [/url]
今天做个小实验,使用DAC输出三角波,示波器测量同时串口打印DAC数据
一、首先通原理图、数据手册,找到自己需要的DAC端口,以及连接到的外部管脚
我这边选了DAC1通道OUT1,即DAC1_OUT1,对应的通道PA4
91434687f3a576e956.png 9900687f3a788cea2.png 40268687f3a9bec34c.png
二、IDE软件开始配置video/BV14cgpz7E
debug配置、RCC配置,正常配置就好,就不在累赘了
DAC1配置如下:

8047687f3bba13ddd.png

TIM2设置
5980687f3cebed179.png

INVC设置:
74415687f3ecf5f58a.png

USART1配置:
14198687f3f23c517c.png

三、代码调试
1、usart.c里面添加代码

#ifdef __GNUC__
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

PUTCHAR_PROTOTYPE
{
  HAL_UART_Transmit(&huart3,(uint8_t *)&ch,1,0xFFFF);//阻塞方式打印
  return ch;
}



2、main.测里面添加代码
#include <stdio.h>



#ifndef HSEM_ID_0
#define HSEM_ID_0 (0U) /* HW semaphore 0*/
#endif


主函数里面添加


   HAL_TIM_Base_Start_IT(&htim6);   //Start TIM3 and trigger DAC1 to periodically output DAC value.

   HAL_DACEx_TriangleWaveGenerate(&hdac1, DAC_CHANNEL_1, DAC_TRIANGLEAMPLITUDE_4095);
   HAL_DAC_Start(&hdac1,DAC_CHANNEL_1);//start DAC1
   HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, DCValue);  // set to output DAC value


while循环里面添加
    DCValue = HAL_DAC_GetValue(&hdac1, DAC_CHANNEL_1);
    printf("DAC1 value:%ld\r\n",DCValue);






3、tim.c函数
  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 95;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 9;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;




四、运行效果
视频:
五、代码
代码三角波.rar (22.69 KB, 下载次数: 0)
wang6623 发表于 2025-7-28 12:46 | 显示全部楼层
这样配置后,你应该能在示波器上看到稳定的三角波,同时在串口助手中看到实时打印的 DAC 数值。
 楼主| LiuDW091 发表于 2025-7-28 14:11 | 显示全部楼层
wang6623 发表于 2025-7-28 12:46
这样配置后,你应该能在示波器上看到稳定的三角波,同时在串口助手中看到实时打印的 DAC 数值。 ...

对的,串口有数据,示波器也有波形
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

175

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

23

主题

175

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部