stm32学习记录-ADC采样

ADC(Analog to Digital Converters)是模数转换器的简称,作用是将各种模拟信号转化为数字信号进行处理。

一、学习目标

(1)学习目标:

利用stm32g474芯片上的ADC转换器将检测到的电压转化为数值,

并使用USB串口将ADC的值发送到串口软件助手

(2)学习准备:

1)硬件平台:基于stm32G474系列的电机控制板

2)软件平台:Clion IDE;STM32CubeMX(后续简称MX

3) 串口调试工具:串口调试助手

二、学习步骤

步骤一:配置ADC和USB

1)配置ADC参考b站博主keysking的视频,链接如下:

【STM32入门教程】ADC 模拟数字转换 ,超清晰动画讲解_哔哩哔哩_bilibili

2)配置USB串口和代码生成管理参考我上篇发布的文章:

stm32学习记录-通讯接口-USB-优快云博客

步骤二:代码编辑与调试

1)打开main.c文件,在用户代码区包含需要的头文件

2)关于ADC采样这部分的代码我使用的是keysking的写法,不同的是我使用USB串口进行通信,因此在串口通信函数处有一些差异

int value = 0;//读取ADC值
float voltage = 0.0;//将ADC结果转换位电压值读取
char message[20]="";//message字符串用于串口输出拼接字符串
  while (1)
  {
      HAL_ADC_Start(&hadc1);//
      HAL_ADC_PollForConversion(&hadc1,HAL_MAX_DELAY);
      value = HAL_ADC_GetValue(&hadc1);// 将ADC值读取到value变量中
      voltage = (value / 4095.0 * 3.3);

      sprintf(message,"ADC:%d %.2fV",value,voltage);
      //sprintf 函数是 C 语言标准库中的一个函数,用于将格式化的数据写入字符串
      //这行代码的执行结果将是一个字符串,其中包含 value 的整数值和 voltage 的浮点数值,格式化为 "ADC:整数 浮点数.00V" 的形式。
      // 例如,如果 value 是 123,voltage 是 4.567,那么 message 将被设置为 "ADC:123 4.57V"


      CDC_Transmit_FS((uint8_t*)message, strlen(message));
      //函数CDC_Transmit_FS接受两个参数:一个指向要发送数据缓冲区的指针Buf和一个表示要发送数据长度的Len。
      // 函数的返回值是一个uint8_t类型的结果,表示操作的状态。
      HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

三、采样输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值