当前位置: 首页 > news >正文

站长之家排名查询西安效果图制作

站长之家排名查询,西安效果图制作,帮管客crm,店铺头像logo设计ADC介绍 Q: ADC是什么#xff1f; A: 全称#xff1a;Analog-to-Digital Converter#xff0c;指模拟/数字转换器 ADC的性能指标 量程#xff1a;能测量的电压范围分辨率#xff1a;ADC能辨别的最小模拟量#xff0c;通常以输出二进制数的位数表示#xff0c;比如 A: 全称Analog-to-Digital Converter指模拟/数字转换器 ADC的性能指标 量程能测量的电压范围分辨率ADC能辨别的最小模拟量通常以输出二进制数的位数表示比如8、10、12、 16位等位数越多分辨率越高一般来说分辨率越高转化时间越长转化时间从转换开始到获得稳定的数字量输出所需要的时间称为转换时间 ADC特性 12位精度下转换速度可高达1MHZ供电电压V SSA 0VV DDA 2.4V~3.6VADC输入范围VREF- ≤ VIN ≤ VREF  一般VREF-接 VSSA; VREF接VDDA; 而VSSA一般接地VDDA一般接3.3V 所以量程是0 ~3.3v 采样时间可配置采样时间越长, 转换结果相对越准确, 但是转换速度就越慢ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中 16位寄存器里存放12位的精度的数据就会涉及到左对齐和右对齐的问题默认右对齐 ADC通道 总共2个ADCADC1ADC2每个ADC有18个转换通道: 16个外部通道也就是和GPIO口连在一起的、 2个内部通道温度 传感器、内部参考电压。 外部的16个通道在转换时又分为规则通道和注入通道其中规则通道最多有16路注入通道最多 有4路。 可以这样理解 规则组正常排队的人 注入组有特权的人军人、孕妇 ADC转换顺序 每个ADC只有一个数据寄存器16个通道一起共用这个寄存器所以需要指定规则转换通道的转 换顺序。 规则通道中的转换顺序由三个寄存器控制SQR1、SQR2、SQR3它们都是32位寄存器。SQR寄存器控制着转换通道的数目和转换顺序只要在对应的寄存器位SQx中写入相应的通道这个通 道就是第x个转换。 和规则通道转换顺序的控制一样注入通道的转换也是通过注入寄存器来控制只不过只有一个 JSQR寄存器来控制控制关系如下  注入序列的转换顺序是从JSQx[ 4 : 0 ]x4-JL[1:0]开始。只有当JL4的时候注入通道的转换 顺序才会按照JSQ1、JSQ2、JSQ3、JSQ4的顺序执行。 ADC触发方式 1. 通过向控制寄存器ADC-CR2的ADON位写1来开启转换写0停止转换。 2. 也可以通过外部事件如定时器进行转换。 ADC转化时间 ADC是挂载在APB2总线PCLK2上的经过分频器得到ADC时钟ADCCLK最高 14 MHz。 转换时间 采样时间12.5个周期 12.5个周期是固定的一般我们设置 PCLK272M经过 ADC 预分频器能分频到最大的时钟只能 是 12M采样周期采样时间设置为 1.5 个周期则一共是14倍周期为14 *1/12000000秒 算出最短的转换时间为 1.17us。 ADC转化模式 扫描模式 关闭扫描模式只转换ADC_SQRx或ADC_JSQR选中的第一个通道 打开扫描模式扫描所有被ADC_SQRx或ADC_JSQR选中的所有通道 单次转换/连续转换 单次转换只转换一次 连续转换转换一次之后立马进行下一次转换 使用ADC读取烟雾传感器的值 的实验 硬件介绍 烟雾传感器 如图所示烟雾传感器的AO和DO分别代表模拟信号和数字信号由于现在学习的ADC模数转换所以将AO引脚接入单片机而不使用DO引脚。 那么AO应该接在哪里呢 查看产品手册 可见在STM32中两路ADC的同一通道使用的同一个引脚 在这个实验中将AO接入单片机的PA0对应ADC1或2的通道0 CubeMX 1. 惯例设置 开一路串口 注意这里的时钟配置“Clock Configuration”上面提到过ADC是挂载在PCLK2上的并经过分配得到ADC自己的时钟频率的。 问题在于如果像之前那样设置HCLK为72MHz, 那么在尝试打开ADC的时候会报错 原因就是 ADC的最高频率是14MHz然而根据惯例设置分配到ADC处的频率变成了36MHz了。   解决办法就是 先将弹出来的会话框点击NO因为这是会自动帮忙配置的请求这里只需要自己调整一下就可以然后将ADC的分频系数改为“/6” 或 “/8”这样就不会报错了 2. 点击左侧的ADC选择通道0 2.1 此时可以看到右侧的图中PA0被选中再次证明PA0的确是ADC1的通道0  2.2 在下方的参数设置可以看到上面提到的关于ADC各种的设置此处暂不修改 3. 惯例配置生成代码 Keil 1. 因为要通过串口来打印数据所以要重写printf所以要打开miro-lib 2. 代码 #include stdio.hint fputc(int a, FILE *f) //一个字符一个字符发送 {unsigned char temp[1] {a};HAL_UART_Transmit(huart1, temp, 1, 0xffff);return a; }int main(void) {uint32_t smoke_value; //通过跳转可以知道 HAL_ADC_GetValue() 的返回值是“uint32_t”类型while (1){HAL_ADC_Start(hadc1); //启动ADC单次转换HAL_ADC_PollForConversion(hadc1, 50); //等待ADC转换完成50是time outsmoke_value HAL_ADC_GetValue(hadc1); //读取ADC转换数据通过跳转可以知道返回值是“uint32_t”类型printf(smoke_value %f\r\n, 3.3/4096 * smoke_value);//printf(smoke_value %d \r\n, smoke_value);HAL_Delay(500); //每500ms检测一次} } 从HAL_ADC_GetValue(hadc1)中读取到的是一个12位有效二进制数的值而电压是3.3V所以一个刻度的值就是 3.3/2^12 3.3/4096把这个最小刻度值乘以读取到的值就是有效的数据了。 而读出来的数其实就是电压的值至于电压的值究竟对应多少烟雾含量这个要看烟雾报警器的手册等。 实现效果 串口助手中 可见每隔500ms就会通过串口打印通过ADC转换得到的有效电压值
http://www.w-s-a.com/news/725585/

相关文章:

  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设