一、写在前面
ADC通道采集数据的两种方式:
1)ADC轮询采集数据直接放到数组中;
2)采用中断方式,ADC采集完成进入中断,中断关闭ADC采集,取数据之后再打开ADC采集。
以下按第一种方式实现:
二、ADC多通道配置
1)配置通道及参数
如果要控制轮询采样通道,设置Sequencer参数,Rank1,2,3即为采样通道顺序。
2)配置DMA
3)配置引脚
二、配置RCC、SYS、时钟及Project Manager,生成代码。
三、代码部分文章来源:https://www.toymoban.com/news/detail-755417.html
需手动开启ADC采集:HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC1_Value,6);文章来源地址https://www.toymoban.com/news/detail-755417.html
/* USER CODE BEGIN 0 */
uint32_t ADC1_Value[6] = {0};
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
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_DMA_Init();
MX_ADC1_Init();
/* USER CODE BEGIN 2 */
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC1_Value,6);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(GPIOA, DEMO_LED_Pin);
delay_ms(1000);
}
/* USER CODE END 3 */
}
到了这里,关于STM32CubeMX配置-ADC多通道配置(DMA) (STM32G070)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!