【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)

(*(volatile uint32_t *)(0xE000ED88)) |= (15 << 20);

在这里插入图片描述

编写测试代码

uint16_t ADC_ByteData[4];
// 启动ADC DMA
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_ByteData, 1);
//循环采样
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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值