你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-H533RE评测】+06 ADC调试

[复制链接]
〃聪聪哥哥 发布时间:2024-8-5 14:13

编译软件:MDK5.38a,调试器使用板载的ST-linkV3

硬件介绍:5K的精密电阻

前言:在原项目基础在调试ADC检测功能。

ADC是指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。简单来说就是将外部检测的电压信号通过内部ADC检测为数字信号。

这里我是用的是ADC1,引脚使用PA1引脚,cube软件配置过程如下:

1.png

基本的软件编写思路:

l 首先开启PA口时钟和ADC1时钟,设置PA1为模拟输入模式,否则AD不能正常读数

l 程序开启之前复位ADC1,同时设置ADC1分频因子和ADC的位数等相关信息。

l 初始化ADC1参数,配置规则通道参数:

l 开启软件转换:

l 等待转换完成,读取ADC值。

其中初始化部分由CUBE软件自动生成,这里就不做过多的介绍,简单的介绍一下,在主程序中如何编写;

其中软件主要是使用复用printf输出调试信息,这里就不做介绍。

主程序软件代码如下:

if (HAL_ADC_PollForConversion(&hadc1, 10) != HAL_OK)

{

Error_Handler();

}

uiADCVALUE = HAL_ADC_GetValue(&hadc1);



uiADCVOLTAGE = __HAL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(3300, uiADCVALUE,        ADC_RESOLUTION_12B);

// HAL_UART_Transmit(&huart2, (uint8_t *)&uhADCxConvertedData, 1, 0xFFFF);

printf("\r\nADC CH1 uiADCVALUE: = %4d \t\r\n", uiADCVALUE);

      printf("\r\nADC CH1 uiADCVOLTAGE: = %4d  \t\r\n", uiADCVOLTAGE);

HAL_Delay(500) ;

这里我使用的是5K的电位器进行模拟ADC的电压输入变化,调节电位器的旋钮,可以看到单片机检测到的AD数据从小到达均匀变化。

2.png

3.png

收藏 评论0 发布时间:2024-8-5 14:13

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版