打印
[STM32H5]

【STM32 Nucleo-64 测评】基于stm32cubemx配置的ADC单通道输入

[复制链接]
219|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yinxiangxv 于 2024-8-13 19:19 编辑

最初是打算外接一个旋钮开关进行模拟量的采集ADC即模拟数字转换,是将模拟电压量转换为数字量的一种手段,如下图所示为STM32F407单个ADC的结构框图 (注释1)其主要包括5个部分,分别为  ADC电源引脚、 ADC输入引脚、 ADC触发源、 ADC转换规则和  ADC中断触发等



ADC电源引脚有VDDA、VSSA、VREF+和VREF-四个引脚,STM32的ADC采集范围为VREF- ≤ VIN ≤ VREF+,一般将ADC的负端参考电压与VSSA短接然后接地,将ADC的正端参考电压接VDDA即3.3V,这样ADC的采集范围就设置为0~3.3V,对于12位分辨率的ADC,其采集数字量范围为0-4095,这样就可以将0-3.3V的电压映射到0-4095的数字量,使其可以相互转化,ADC电源即参考电压引脚具体描述如下图所示

ADC的转换主要依靠12位分辨率的片上模数转换器
注入通道和规则通道均有16个触发源,可以选择定时器外部源触发/定时器比较捕获触发/软件常规触发
ADC启动转换时需要按照一定通道顺序转化,该顺序由规则通道和注入通道两者共同决定,其中注入通道其数据寄存器为4*16位,因此可以同时转换四个通道
但是规则通道的数据寄存器只有一个16位的寄存器,因此必须一个通道一个通道的转换,每转换完一个通道,就需要及时将转换完成的结果从规则通道数据寄存器中读出去
手册中关于时间触发的描述:

本实验采用的是tim3的in15和adc1

相关回调函数要在adc.c中进行实现
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
{

  if(adcHandle->Instance==ADC1)
  {
  /* USER CODE BEGIN ADC1_MspDeInit 0 */

  /* USER CODE END ADC1_MspDeInit 0 */
    /* Peripheral clock disable */
    __HAL_RCC_ADC_CLK_DISABLE();

    /**ADC1 GPIO Configuration
    PA3     ------> ADC1_INP15
    */
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3);

    /* ADC1 interrupt Deinit */
    HAL_NVIC_DisableIRQ(ADC1_IRQn);
  /* USER CODE BEGIN ADC1_MspDeInit 1 */

  /* USER CODE END ADC1_MspDeInit 1 */
  }
}

/* USER CODE BEGIN 1 */
/*转换完成中断回调*/
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
    /*定时器中断启动单通道转换*/
    if(hadc->Instance == ADC1)
    {
        uint32_t val=HAL_ADC_GetValue(&hadc1);
        uint32_t Volt=(3300*val)>>12;
        printf("val:%d, Volt:%d\r\n",val,Volt);
    }
}
/* USER CODE END 1 */
printf的实现方法比较多,可以基于库函数进行实现
也可以参考之前发出来的xprintf这个串口通信实现方式

480466bb4020bb492.png (534.61 KB )

480466bb4020bb492.png

使用特权

评论回复
沙发
而服务器人| | 2024-8-14 15:11 | 只看该作者
否有设置ADC的转换模式和通道?这可能会影响数据采集的结果。

使用特权

评论回复
板凳
micoccd| | 2024-8-14 15:19 | 只看该作者
输出的值怎么怪怪的

使用特权

评论回复
地板
狄克爱老虎油| | 2024-8-17 23:40 | 只看该作者
单通道跟多通道有什么区别啊

使用特权

评论回复
5
yinxiangxv|  楼主 | 2024-8-26 16:50 | 只看该作者
狄克爱老虎油 发表于 2024-8-17 23:40
单通道跟多通道有什么区别啊

我**力有点不好,这个知识点还没有分辨清楚

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

281

帖子

0

粉丝