欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > STM32基础学习笔记-ADC面试基础题6

STM32基础学习笔记-ADC面试基础题6

2024/10/25 6:28:39 来源:https://blog.csdn.net/shenzhou17/article/details/142411196  浏览:    关键词:STM32基础学习笔记-ADC面试基础题6

第六章、ADC

常见问题
1、基本概念:什么是ADC ?作用 ?逐次逼近型
2、传感器本质 ?传感器、电压、ADC数值转化 ?
3、ADC的特征 ? 转化时间、分辨率、精度、量化误差
4、ADC框图组成部分 ?参考电压/模拟部分电压、输入通道、转换序列、触发源、数据寄存器、转换时间、中断
5、转换模式_扫描模式 ?
## 1、ADC 模数转换器

作用:模拟数据->数字数据

整流:3.3V(模拟)->1(数字) 0V->0

而ADC内部也有一套转化规则:

3.3V->1024/8/512 0V->0

2、传感器

压力传感器、光敏传感器、温度传感器、湿度传感器、气压传感器等等

这些传感器内部实现原理:本质是滑动变阻器

将外部环境信息转换成电压信息(比如100N的力对应3.3V)

外部环境数据:100N 变成 模拟电压

ADC就是去继续量化这个模拟电压的,1024量化3.3V

ADC的特征:ADC的厂商定义四个核心的东西:分辨率(意味着ADC可以表示的范围:比如分辨率是3,0到2的3次方-1;分辨率是10就是0到2的10次方-1,分辨率最高的12,精度更大,分的更清楚)、精度、误差(制作的时候,工艺有区别,存在一个理论值与实际值的差别)、转化时间(要给一个充分的时间,要么确定ADC已经转化完成,要么给一个明确的完成信号)

ADC的内部构造:分为并联选择型和逐次逼近型 (电压->ADC值 )

3、实验

<font style="color:#4874CB;">1、轮询模式</font><font style="color:#4874CB;"> HAL_ADC_Start(&hadc1);  </font><font style="color:#4874CB;"> HAL_ADC_PollForConversion(&hadc1, 50);</font><font style="color:#4874CB;"> ADC_Value = HAL_ADC_GetValue(&hadc1);</font><font style="color:#4874CB;"> HAL_ADC_Stop(&hadc1);  </font>

2、 DMA模式

<font style="color:#4874CB;"> HAL_ADC_Start_DMA(&hadc1,(uint32_t *)ADC_Value,2);</font><font style="color:#4874CB;"> printf("%d    %d \r\n",ADC_Value[0],ADC_Value[1]);  </font><font style="color:#75BD42;">while循环中  采样周期要大一点  75.5Cycles )</font><font style="color:#4874CB;">  </font>

4、实验:单通道读取五向按键

这个五向按键有两个功能:判断是否按下,判断方向;

在五个按键上,接不同的电压,读取到不同的ADC的值,读的时候注意ADC的通道(通过原理图要找到五向按键和ADC的通道是哪个,必须要找到)

找到之后keil编程:第一步开启;第二步等待转化完成;第三步是获取ADC的值;第四步:停止 以上为轮询方式实现;

效果截图:

实验代码:

配置PA1为ADC1,然后设置一个USART1,实验代码:

中断方式实现:首先是ADC的中断开关;

然后找到对应的回调函数(跟着中断向量表中的ADC服务函数,每个服务函数里都有统一的ADC处理(在这个处理中肯定有callback回调函数,然后重写这个回调函数));接着获取ADC的值,处理完之后,把开关闭合上。

实验记录:

在轮询的前提下,加一个nvic:

硬件问题,如何用软件来区分五向按键向右按和不按(用PA8)


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com