新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2021-5-13
- 在线时间
- 3 小时
|
想实现ADC+DMA(双缓冲模式)向串口发送数据;
uint16_t ADC_DateBuffer1[2048];
uint16_t ADC_DateBuffer2[2048]; //定义完两个数组
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC2_Init();
MX_LPUART1_UART_Init();
MX_DAC1_Init();
MX_TIM6_Init();
/* USER CODE BEGIN 2 */
ADC_Enable(&hadc2);
HAL_ADC_Start_DMA(&hadc2,(uint32_t *)ADC_DateBuffer1,2048);
HAL_ADC_Start_DMA(&hadc2,(uint32_t *)ADC_DateBuffer2,2048);
HAL_TIM_Base_Start(&htim6);
HAL_DAC_Start_DMA(&hdac1,DAC_CHANNEL_1,(uint32_t *)LFM, 2048, DAC_ALIGN_12B_R);
HAL_DMAEx_MultiBufferStart(&hdma_adc2, (uint32_t) (ADC2->DR), (uint32_t)ADC_DateBuffer1, (uint32_t)ADC_DateBuffer2, 2048); //DMA双缓冲模式开启
/* USER CODE END 2 */
用cubemax生成程序后,只能实现ADC+DMA向其中一个数组ADC_DateBuffer1中发送数据,ADC_DateBuffer2中数据始终为0x00;
HAL_DMAEx_MultiBufferStart(&hdma_adc2, (uint32_t) (ADC2->DR), (uint32_t)ADC_DateBuffer1, (uint32_t)ADC_DateBuffer2, 2048);这个库函数不太熟悉,好像是没有驱动双缓冲模式
请求大家指教!!!
|
|