我使用的是五路模拟量灰度传感器,单片机是stm32f103c8t6.要注意灰度电源端最好接5v。其余A0、A1、A2、A3、A4我接的是单片机ADC1的PA0、PA1、PA2、PA3、PA5,(为什么不接PA4呢,那是由于PA4被占用了,那如何判断IO口是否被占用,我们可以不给灰度传感器供电,其他IO口都接上,然后与电脑通信,查看那个口有数据就说明他被占用了)还要注意,ADC1只能用DMA1进行搬运。灰度传感器原理:每一组传感器均由一只发光二极管和一只灰度接收管组成;两个探头安装在电路板同一面上,发光管发射的光会被检测面反射后由灰度接收管进行回收。由于光线照射到不同颜色后一部分光被颜色吸收,一
SAR型ADC,即逐次渐进逼近型ADC,采用的是多次比较的方式来获得最终的输出结果,具有简单易用,功耗低的特点。下图这个结构可以帮助我们容易地理解SAR型ADC的工作过程: 如上图,假设输入信号的伪代码为45,ADC为一个6位的ADC,满量程输出为63。1.在采样阶段,ADC将输入信号采样至采样保持器(S/H)中并保持住,即此时S/H中的值为45,请记住S/H中实际是一个模拟电压,45是我们给它定义的代表它大小的伪代码;2.接下来,在转换的第一个时钟上升沿,SAR寄存器首先将最高位至1,即把32(半个满量程),送给一个DA转换器,DA转换器输出的模拟信号和S/H中的模拟
电机控制另一个关键的模块就是ADC采样,这个模块配置的好坏决定了采样电流和电压的精准度,因此有必要对其进行深入学习。简介:STM32在片上集成的ADC外设非常强大。STM32F103xC、STM32F103xD和STM32F103xE增强型产品内嵌3个12位的ADC,每个ADC共用多达21个外部通道,可以实现单次或多次扫描转换。如STM32F103VET6,属于增强型的CPU,它有18个通道可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行ADC的结果可以左对齐或右对齐方式存储在16位数据存器中,模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低
1、ADC的介绍ADC就是模数转换,就是将芯片的端口模拟量转化位数字量显示出来能够看得到这个比例值。转换类型分三种:1、逐次逼近型就是类似于二分查找法,当给定一个值然后与这个比较,大于这个值那么就是在这个值得以上到边界值,那么下一次比较就是在大于这个值到边界值得中间那个比较,然后在与这两个中间值比较。依次比较,直到找到这个值,这个算法复杂度在log2n。2、双积分型就是它先对输入采样电压和基准电压进行两次积分,以获得与采样电压平均值成正比的时间间隔,同时在这个时间间隔内,用计数器对标准时钟脉冲(CP)计数,计数器输出的计数结果就是对应的数字量。优点在于算出得值比较精准。3、电压频率转换型就是将
1、ADC的介绍ADC就是模数转换,就是将芯片的端口模拟量转化位数字量显示出来能够看得到这个比例值。转换类型分三种:1、逐次逼近型就是类似于二分查找法,当给定一个值然后与这个比较,大于这个值那么就是在这个值得以上到边界值,那么下一次比较就是在大于这个值到边界值得中间那个比较,然后在与这两个中间值比较。依次比较,直到找到这个值,这个算法复杂度在log2n。2、双积分型就是它先对输入采样电压和基准电压进行两次积分,以获得与采样电压平均值成正比的时间间隔,同时在这个时间间隔内,用计数器对标准时钟脉冲(CP)计数,计数器输出的计数结果就是对应的数字量。优点在于算出得值比较精准。3、电压频率转换型就是将
文章目录一、前言二、ADC配置库函数解读1、复位函数ADC_DeInit2、初始化函数ADC_Init3、使能函数4、整合三、读取ADC数值四、由所读到的ADC值转化为实际电压一、前言ADC模块中文名为模拟/数字转换器,是12位逐次逼近型的模拟数字转换器,一般用于数值的采样,比如我最近在做一个示波器,那么就需要对信号进行采样,这就需要用到ADC模块。一般步骤为将ADC模块与某引脚相连,再用该引脚去接入所要测试的地方,ADC模块便可以经过换算得到所要测试部位的电位。二、ADC配置库函数解读1、复位函数ADC_DeInitvoidADC_DeInit(ADC_TypeDef*ADCx);调用示例如
文章目录一、前言二、ADC配置库函数解读1、复位函数ADC_DeInit2、初始化函数ADC_Init3、使能函数4、整合三、读取ADC数值四、由所读到的ADC值转化为实际电压一、前言ADC模块中文名为模拟/数字转换器,是12位逐次逼近型的模拟数字转换器,一般用于数值的采样,比如我最近在做一个示波器,那么就需要对信号进行采样,这就需要用到ADC模块。一般步骤为将ADC模块与某引脚相连,再用该引脚去接入所要测试的地方,ADC模块便可以经过换算得到所要测试部位的电位。二、ADC配置库函数解读1、复位函数ADC_DeInitvoidADC_DeInit(ADC_TypeDef*ADCx);调用示例如
一、杂谈拖了好久才来更文章….是因为一直比较忙,哈哈。工程在文末今年呢,是第二次参加智能汽车校赛,本来也是参加了飞卡的,但是因为某些原因(包括个人的也有包括组队的一些其实现在看来也就那样的问题)我退出了,说有遗憾那必然是有的,因为毕竟哪个工科男生没有一个做车车的想法呢,但不后悔,因为有了更多时间去做其它也想做的事情。所以这个智能车校赛就当作过过车瘾了。说一下大致的情况吧,我写程序调车,另一个同伴搭车做硬件,我们是高年级组了要求的是做三轮车,去年也参加了做的四轮车,去年调了一个月接近,也是我一个人调的程序,最后拿了三等奖。其实三轮车和四轮车区别不大,无非就改改代码控制而已。今年的三轮车组别,我调
一、杂谈拖了好久才来更文章….是因为一直比较忙,哈哈。工程在文末今年呢,是第二次参加智能汽车校赛,本来也是参加了飞卡的,但是因为某些原因(包括个人的也有包括组队的一些其实现在看来也就那样的问题)我退出了,说有遗憾那必然是有的,因为毕竟哪个工科男生没有一个做车车的想法呢,但不后悔,因为有了更多时间去做其它也想做的事情。所以这个智能车校赛就当作过过车瘾了。说一下大致的情况吧,我写程序调车,另一个同伴搭车做硬件,我们是高年级组了要求的是做三轮车,去年也参加了做的四轮车,去年调了一个月接近,也是我一个人调的程序,最后拿了三等奖。其实三轮车和四轮车区别不大,无非就改改代码控制而已。今年的三轮车组别,我调
一、实验目的与任务实验目的:1.学习对ADC基础功能的使用;2.掌握KEIL5的仿真与调试。任务:1. 根据要求编写程序,并写出原理性注释;2.将检查程序运行的结果,分析一下是否正确;3.完成所建工程的验证调试。二、实验要求贴片滑动变阻器的动触点通过连接至STM32芯片的ADC通道引脚。当我们使用旋转滑动变阻器调节旋钮时,其动触点电压也会随之改变,电压变化范围为0~3.3V,亦是开发板默认的ADC电压采集范围。三、实验内容及步骤1.软件设计①实验新建文件步骤:运行Keil5开发环境。编写两个ADC驱动文件,AD.c和AD.h,用来存放ADC所用IO引脚的初始化函数以及ADC配置相关函数。②编