[STM32WBA] 【STM32WBA52CG测评】ADC采集

[复制链接]
747|1
 楼主| BinWin 发表于 2023-8-2 21:47 | 显示全部楼层 |阅读模式
      板卡的ADC采集是作为计划的一部分,不过只是测试Demo,以下仅为使用过程分享。
      使用CubeMX工具创建新的工程,时钟等配置保持不变。
       a.png
    选择ADC4的通道8,其他参数默认。然后生成代码。例程的Uart_Pirintf中拷贝出重定向代码做了多种编译器的兼容,我只用MDK,自己添加。

  1. int fputc(int ch, FILE *f)
  2. {
  3.                 HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1,0xFFFF);
  4.      return ch;
  5. }
   然后AC6编译,勾选Use MicroLib即可,但实际上会产生错误。修改方法有点奇怪,但是管用。    b.png
    图片中的两处先注释掉,然后编译一次,还是会报一处错误,不用在意。取消注释,再次编译就没问题了。这里的IF不知道是不是和MDK 的配置产生了冲突。或者没有识别出来。
    然后添加ADC部分的代码。
   
  1. if (HAL_ADC_Start(&hadc4) != HAL_OK)
  2.                   {
  3.                         /* Start Conversation Error */
  4.                         Error_Handler();
  5.                   }
  6.                 HAL_ADC_PollForConversion(&hadc4, 10);
  7.                 if ((HAL_ADC_GetState(&hadc4) & HAL_ADC_STATE_REG_EOC) == HAL_ADC_STATE_REG_EOC)
  8. {
  9.                           ADC_ValueIN4 = HAL_ADC_GetValue(&hadc4);               
  10.                                 printf("adc value = %d, vlot = %.2fmV\r\n",ADC_ValueIN4,ADC_ValueIN4*0.806);
  11.                 }
    以上简单的处理后,工程就可以读取到ADC采集的数据了,悬空PA1, 有如下读数
      c.png
     连接PA1到3V3的插针引脚上,可以得到如下读数
      d.png
    基本可用,接下来通过蓝牙传数据。
   





gejigeji521 发表于 2024-1-12 17:04 | 显示全部楼层
超时等待时间太长了,可以小一点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

65

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部