【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

相关推荐
Hello_Embed4 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
一起搞IT吧5 小时前
嵌入式ARM SOC开发中文专题分享一:ARM SOC外围资源介绍
arm开发·嵌入式硬件
研华嵌入式5 小时前
如何在高通跃龙QCS6490 Arm架构上使用Windows 11 IoT企业版?
arm开发·windows·嵌入式硬件
矢志不移7926 小时前
裸机开发 时钟配置,EPIT
单片机·嵌入式硬件
清风6666667 小时前
基于STM32的APP遥控视频水泵小车设计
stm32·单片机·mongodb·毕业设计·音视频·课程设计
物随心转9 小时前
RTC驱动原理
嵌入式硬件
BAGAE10 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
风_峰10 小时前
Petalinux相关配置——ZYNQ通过eMMC启动
嵌入式硬件·ubuntu·fpga开发
风_峰10 小时前
【ZYNQ开发篇】Petalinux和电脑端的静态ip地址配置
网络·嵌入式硬件·tcp/ip·ubuntu·fpga开发
月阳羊12 小时前
【硬件-笔试面试题-95】硬件/电子工程师,笔试面试题(知识点:RC电路中的时间常数)
java·经验分享·单片机·嵌入式硬件·面试