我正在尝试使用 DMA 从
STM32F103C8T6 的 ADC1 的多个通道获取 ADC 值,其中每 1ms 由
tiM3 触发一次转换。但是,我没有看到正确的值。我尝试了轮询模式并且效果很好。以上是目前主要的功能代码和CubeMX中的设置。我错过了什么?
- int main(void)
- {
- /* USER CODE BEGIN 1 */
- /* USER CODE END 1 */
- /* MCU Configuration--------------------------------------------------------*/
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
- HAL_Init();
- /* USER CODE BEGIN Init */
- /* USER CODE END Init */
- /* Configure the system clock */
- SystemClock_Config();
- /* USER CODE BEGIN SysInit */
- /* USER CODE END SysInit */
- /* Initialize all configured peripherals */
- MX_GPIO_Init();
- MX_ADC1_Init();
- MX_SPI1_Init();
- MX_TIM1_Init();
- MX_I2C1_Init();
- MX_USART1_UART_Init();
- MX_DMA_Init();
- MX_TIM2_Init();
- MX_TIM3_Init();
- /* USER CODE BEGIN 2 */
- HAL_ADC_Start_DMA(&hadc1, (uint32_t*) adc1_values, 2);
- HAL_TIM_Base_Start(&htim3);
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */
- }