【HMGD】使用CubeMx配置GD32F303系列单片机进行DMA ADC

原理图查看

查原理图可以看到GD32F103C8T6的官方开发板GD32303C-START-V1.0的PA1没有接任何东西

使用PA1作为ADC端口

CubeMX配置ADC和时钟

配置ADC通道

启用循环模式

配置此通道ADC分频

配置ADC DMA为循环模式

配置时钟

可根据手册配置最大HZ

GD32F303最高频率设定

生成项目

Keil里面的配置

选择对应的GD32型号

编译参数里面,带上-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard

置位CPACR寄存器(0xE000ED88)的第20~23这4个比特位(CP10、CP11)

c 复制代码
(*(volatile uint32_t *)(0xE000ED88)) |= (15 << 20);

编写测试代码

c 复制代码
uint16_t ADC_ByteData[4];
// 启动ADC DMA
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_ByteData, 1);
c 复制代码
//循环采样
float ADC_Data = 0.0;
while (1)
  {
    /* USER CODE END WHILE */
		
		HAL_Delay(1000);
		
		ADC_Data = (float)ADC_ByteData[0] / 4096.0f * 3.3f ;
		
		printf("AD 0x%04X \r\n", ADC_ByteData[0]);
		printf("AD %f V \r\n", ADC_Data);

    /* USER CODE BEGIN 3 */
  }

运行效果

项目程序下载

https://download.csdn.net/download/hmxm6/89238816

相关推荐
raindrops.28 分钟前
STM32之LL库使用(二)
stm32·单片机·嵌入式硬件
日更嵌入式的打工仔3 小时前
单片机基础知识:内狗外狗/软狗硬狗
笔记·单片机
v先v关v住v获v取3 小时前
12米折叠式高空作业车工作臂设计9张cad+三维图+设计说明书
科技·单片机·51单片机
单片机系统设计3 小时前
基于STM32的水质检测系统
网络·stm32·单片机·嵌入式硬件·毕业设计·水质检测
唔好理总之好犀利5 小时前
FreeRTOS中断内使用taskENTER_CRITICAL()进入临界区
单片机·嵌入式硬件
csg11075 小时前
PIC单片机入门实战(一):PIC16F1824/PIC12F1822,从振荡器与Timer1开始
单片机·嵌入式硬件·物联网
清风6666665 小时前
基于单片机的车辆超载报警系统设计及人数检测设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
QQ_21932764555 小时前
基于单片机的自动售货机系统设计
单片机·嵌入式硬件
Y1rong5 小时前
STM32之IIC
stm32·单片机
Nautiluss6 小时前
一起调试XVF3800麦克风阵列(九)
linux·人工智能·嵌入式硬件·音频·语音识别·dsp开发