你好,
我在
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 ) ;
- }
- }