[STM32H5] STM32 Nucleo-64测评】+ADC的使用

[复制链接]
1778|1
 楼主| meiyaolei 发表于 2024-8-11 00:00 | 显示全部楼层 |阅读模式
在进行基于STM32 NUCLEO-H533RE开发板的ADC(模数转换器)调试时,使用MDK-ARM(Keil uVision 5.38a)作为编译软件和板载的ST-linkV3作为调试器是一个常见的选择。


下面我将详细指导你如何通过STM32CubeMX配置ADC1,并使用PA1引脚进行ADC采样的基本步骤。

1. STM32CubeMX配置ADC1
第一步:创建新项目
打开STM32CubeMX。
点击“File” -> “New Project”创建一个新项目。
在MCU/MPU Selector中选择你的设备STM32H753ZI(NUCLEO-H533RE的核心MCU)。


第二步:配置时钟
确保你的MCU时钟配置正确,以满足ADC的采样率需求。通常,系统时钟(HSE或HSI)会被用作PLL的输入来生成高速时钟。


第三步:配置ADC1
在左侧的Pinout & Configuration界面中,找到ADC1部分。
展开ADC1,选择模拟输入通道。对于你的需求,你需要将PA1设置为ADC1的输入。
点击PA1旁边的下拉菜单,选择“ADC1_IN1”作为功能。
转到Configuration标签页,对ADC1进行更详细的配置:
设置分辨率。
设置采样时间(这会影响ADC的转换速率和精度)。
配置连续转换模式或单次转换模式。
如果需要,配置DMA来自动传输ADC数据到内存。
第四步:配置时钟树
确保ADC的时钟被正确配置。这通常在Clock Configuration部分进行。

第五步:生成代码
点击“Project” -> “Generate Code”生成初始化代码。选择MDK-ARM作为IDE,并设置你的项目路径。
2. MDK-ARM(Keil uVision 5)中编写ADC读取代码
在Keil中打开生成的项目,你可以在main.c或特定的ADC处理文件中添加代码来读取ADC值。


代码:
  1. if (HAL_ADC_PollForConversion(&hadc1, 10) != HAL_OK)
  2.     {
  3.       Error_Handler();
  4.     }
  5.                 uiADCVALUE = HAL_ADC_GetValue(&hadc1);
  6.                 uiADCVOLTAGE = __HAL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(3300, uiADCVALUE, ADC_RESOLUTION_12B);
  7.           printf("\r\nADC CH1 stm32h5: = %4d  \t\r\n", uiADCVALUE);
  8.                 HAL_Delay(500) ;


下面上图:
4614466b78a5667ddd.png
配置时钟:


1634066b78d58c8324.png
输出结果:
2391766b78ab15cc70.png

呐咯密密 发表于 2024-8-13 18:15 来自手机 | 显示全部楼层
过程很详细,能做个输入ADC和输入对比就好了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

267

主题

844

帖子

6

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