ST意法半导体
直播中

王树林

7年用户 1654经验值
私信 关注
[问答]

DAC到ADC循环不起作用怎么解决?

你好,

我在 STM32CubeIDE 上使用 NUCLEO-F722ZE EVB。
我的设计有一个 DAC 输出,通过跳线连接到 ADC 输入(见附图中的红线。
DAC 成功生成锯齿波 - 通过示波器验证。

但是 ADC 无法正常工作。我正在使用断点来停止代码,我看到了“半常数”值。
“半常数”是指读数在编译之间发生变化,但在运行期间保持不变,并且似乎不受驱动它的 DAC 的影响。

我究竟做错了什么 ?

这是我的代码:
  • #include "main.h"
  • ADC_HandleTypeDef hadc3;
  • DAC_HandleTypeDef hdac;
  • UART_HandleTypeDef huart3;
  • uint32_t voltage_in = 0 ;
  • uint32_t voltage_out = 0 ;
  • void SystemClock_Config(void);
  • static void MX_GPIO_Init(void);
  • static void MX_USART3_UART_Init(void);
  • static void MX_DAC_Init(void);
  • static void MX_ADC3_Init(void);
  • int main(void)
  • {
  •   HAL_Init();
  •   SystemClock_Config();
  •   MX_GPIO_Init();
  •   MX_USART3_UART_Init();
  •   MX_DAC_Init();
  •   MX_ADC3_Init();
  •   HAL_ADC_Start ( & hadc3 ) ;
  •   HAL_DAC_Start ( & hdac , DAC_CHANNEL_1 ) ;
  •    while (1)
  •    {
  •          if ( voltage_out == 4095 )
  •           {
  •                  voltage_out = 0 ;
  •          }
  •         else
  •            {
  •              HAL_DAC_SetValue ( & hdac , DAC_CHANNEL_1 , DAC_ALIGN_12B_R , voltage_out ) ;
  •              voltage_out ++ ;
  •           }
  •     HAL_ADC_PollForConversion ( & hadc3 , 1000 ) ;
  •     voltage_in = HAL_ADC_GetValue ( & hadc3 ) ;
  •   }
  • }


回帖(1)

黄登高

2023-2-3 10:51:47
解决问题的方法是从以下位置设置“转换结束选择”:
单通道转换结束时的 EOC 标志

所有转换结束时的 EOC 标志
举报

更多回帖

发帖
×
20
完善资料,
赚取积分