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

鞍山做网站排名wordpress火车头免密发布模块接口

鞍山做网站排名,wordpress火车头免密发布模块接口,模板网字体库,四川红叶建设有限公司网站目录 1、准备材料 2、实验目标 3、ADC概述 4、实验流程 4.0、前提知识 4.1、CubeMX相关配置 4.1.1、时钟树配置 4.1.2、外设参数配置 4.1.3、外设中断配置 4.2、生成代码 4.2.1、外设初始化调用流程 4.2.2、外设中断调用流程 4.2.3、添加其他必要代码 5、常用函数…目录 1、准备材料 2、实验目标 3、ADC概述 4、实验流程 4.0、前提知识 4.1、CubeMX相关配置 4.1.1、时钟树配置 4.1.2、外设参数配置 4.1.3、外设中断配置 4.2、生成代码 4.2.1、外设初始化调用流程 4.2.2、外设中断调用流程 4.2.3、添加其他必要代码 5、常用函数 6、烧录验证 6.1、实验具体流程 6.2、实验现象 7、软件触发ADC采集 8、注释详解 参考资料 1、准备材料 开发板正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件Version 6.10.0 野火DAP仿真器 keil µVision5 IDEMDK-Arm CH340G Windows系统驱动程序CH341SER.EXE XCOM V2.6串口助手 1个滑动变阻器 2、实验目标 使用STM32CubeMX软件配置STM32F407开发板的ADC实现单通道ADC采集具体为使用ADC1_IN5通道通过软件/定时器触发采集滑动变阻器上的分压 3、ADC概述 ADC即模拟数字转换是将模拟电压量转换为数字量的一种手段如下图所示为STM32F407单个ADC的结构框图注释1其主要包括5个部分分别为①ADC电源引脚、②ADC输入引脚、③ADC触发源、④ADC转换规则和⑤ADC中断触发下面从这五个方面分别介绍STM32F407的ADC ①ADC电源引脚有VDDA、VSSA、VREF和VREF-四个引脚STM32的ADC采集范围为VREF- ≤ VIN ≤ VREF一般将ADC的负端参考电压与VSSA短接然后接地将ADC的正端参考电压接VDDA即3.3V这样ADC的采集范围就设置为0~3.3V对于12位分辨率的ADC其采集数字量范围为0-4095这样就可以将0-3.3V的电压映射到0-4095的数字量使其可以相互转化ADC电源即参考电压引脚具体描述如下图所示注释1 ②STM32F407有三个ADC可供使用每个ADC又拥有16个通道ADCx_IN[15:0]其中ADC1还拥有Temperature Sensor Channel、Vrefint Channel和Vbat Channel三个内部通道Temperature Sensor Channel通道用于测量芯片内部温度范围为-40℃~125℃精度为±1.5℃Vrefint Channel用于测量内部参考电压Vbat Channel用于测量备用电源电压的一半ADC的转换主要依靠12位分辨率的片上模数转换器 ③注入通道和规则通道均有16个触发源可以选择定时器外部源触发/定时器比较捕获触发/软件常规触发具体参看上图ADC框架中的紫色框框 ④ADC启动转换时需要按照一定通道顺序转化该顺序由规则通道和注入通道两者共同决定其中注入通道其数据寄存器为4*16位因此可以同时转换四个通道但是规则通道的数据寄存器只有一个16位的寄存器因此必须一个通道一个通道的转换每转换完一个通道就需要及时将转换完成的结果从规则通道数据寄存器中读出去其中注入通道类似ADC通道转换过程的中断如下图所示注释2 ⑤ADC的中断事件有DMA溢出、ADC转换结束、注入转换结束和模拟看门狗事件共四个事件前三个中断和其名字表述类似当转换结束/溢出时就会产生中断模拟看门狗可以设置ADC转换值的上限和下限当超出限制之后就会产生中断可以用于警报如下表所示注释1 ADC有独立模式、二重和三重采集模式当只有ADC1启动时只能使用独立模式当ADC1/2启动时可以使用二重采集模式当ADC1/2/3/全部启动时可以使用三重采集模式本实验只介绍独立模式 4、实验流程 4.0、前提知识 本实验为ADC独立模式单通道单次转换模式主要利用ADC1_IN5通道由软件/定时器启动ADC转换如果是软件手动启动的ADC转换则在单次转换模式下每次转换完成一次之后均需要再次手动启动ADC转换另外需要注意ADC在开始精确转换之前需要一段稳定时间tSTAB如下图所示为ADC转化所经过的路径 4.1、CubeMX相关配置 请先阅读“STM32CubeMX教程1 工程建立”实验3.4.1小节配置RCC和SYS 4.1.1、时钟树配置 系统时钟树配置均设置为STM32F407总线能达到的最高时钟频率具体如下图所示 4.1.2、外设参数配置 本实验需要需要初始化USART1作为输出信息渠道具体配置步骤请阅读“STM32CubeMX教程9 USART/UART 异步通信” 设置TIM3通用定时器溢出时间100ms外部触发事件选择更新事件参数详解请阅读“STM32CubeMX教程6 TIM 通用定时器 - 生成PWM波”实验具体配置如下图所示 在Pinout Configuration页面左边功能分类栏目Analog中单击其中ADC1在Mode中勾选需要使用的输入通道本实验为单通道转换实验因此任意勾选IN0~IN15之间的任一通道均可笔者勾选了IN5 在Configuration中对ADC1_IN5的转换参数进行配置下面介绍一些比较重要的参数 ------------------ ADCs_Common_Settings ------------------ ①Mode模式现在只能选择独立模式当同时启用了ADC1/2或ADC1/2/3时这里会出现多重ADC采集的模式可选 ------------------------- ADC_Settings ------------------------- ②Clock Prescaler时钟分频决定ADC转换的频率分频越少ADC转换的频率越高最少2分频一个通道一次ADC转换的总时间为N12个ADC时钟周期其中N为设置的采样次数Cycles ③ResolutionADC转换精度可以选择12/10/8/6位精度的转换值精度选择不同需要的转换时钟周期也不同 ④Data Alignment数据对齐由于规则数据寄存器为16位但是最高转换精度为12位因此数据可以选择以右对齐/左对齐的方式放入寄存器 ⑤Scan Conversion Mode扫描转换模式规则通道同时只能转换一个通道启用该参数后当规则通道中有多个通道等待转换时其转换完当前通道会自动转换组内的下一个通道 ⑥Continuous Conversion Mode连续转换模式启用该参数ADC结束一个转换立即开始一个新的转换与参数⑤共同启用则组内最后一个通道转换完毕后会立即切换到第一个通道继续转换 ⑦DMA Continuous RequestsDMA请求需要在DMA Settings中添加DMA请求后该参数才可以使能 ⑧End Of Conversion Selection结束转换标志选择是一个通道转换完就产生EOC标志还是一个组内所有通道全部转换完才产生EOC标志 ------------------ ADC_Regular_ConversionMode------------------ ⑨NumberOfConversion转换通道数量常规规则通道希望转换的通道数量 ⑩External Trigger Conversion Source外部触发转换源 ⑪External Trigger Conversion Edge外部触发转换边沿 ⑫Rank规则通道排序 ------------------ ADC_Injected_ConversionMode------------------ ⑬NumberOfConversion注入通道转换模式通道数量注入通道希望转换的通道数量 具体参数配置如下图所示 4.1.3、外设中断配置 在Pinout Configuration页面左边System Core/NVIC中勾选ADC1/2/3全局中断然后选择合适的中断优先级即可步骤如下图所示 4.2、生成代码 请先阅读“STM32CubeMX教程1 工程建立”实验3.4.3小节配置Project Manager 单击页面右上角GENERATE CODE生成工程 4.2.1、外设初始化调用流程 在生成的工程代码主函数main()中调用了MX_ADC1_Init()函数完成了对ADC1基本参数的配置ADC常规规则通道/注入通道等参数配置 然后在ADC初始化函数HAL_ADC_Init()函数中调用了HAL_ADC_MspInit()函数对ADC1时钟和中断进行了使能对中断优先级进行了配置对ADC1_IN5输入引脚做了复用操作 如下图所示为ADC1单通道初始化的具体函数调用流程 4.2.2、外设中断调用流程 使能ADC1/2/3全局中断后在stm32f4xx_it.c中自动生成了TIM4的中断处理函数ADC_IRQHandler() ADC_IRQHandler()调用了HAL库的ADC中断处理函数HAL_ADC_IRQHandler()该函数处理所有的ADC中断事件 在ADC转换完成之后最终调用了ADC转换完成中断回调函数HAL_ADC_ConvCpltCallback()该函数为虚函数 如下图所示为ADC1单通道转换中断回调的具体函数调用流程 4.2.3、添加其他必要代码 在adc.c中重新实现ADC转换完成中断回调函数HAL_ADC_ConvCpltCallback()在该函数中获取ADC的转换值然后将其计算为电压值*1000并将这两个值通过串口输出具体代码如下图所示 源代码如下 /*转换完成中断回调*/ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {/*定时器中断启动单通道转换*/if(hadc-Instance ADC1){uint32_t valHAL_ADC_GetValue(hadc1);uint32_t Volt(3300*val)12;printf(val:%d, Volt:%d\r\n,val,Volt);} }在主函数中以中断方式启动ADC转换然后启动ADC的触发源TIM3定时器具体代码如下图所示 5、常用函数 /*启动ADC转换*/ HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)/*停止ADC转换*/ HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)/*以中断方式启动ADC转换*/ HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc)/*停止ADC转换*/ HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc)/*轮询ADC是否转换完毕*/ HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)/*获取ADC转换值*/ uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc)/*ADC转换完成中断回调函数*/ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) 6、烧录验证 6.1、实验具体流程 “配置USART1用于输出信息 - 配置通用定时器TIM3实现100ms定时 - TIM3外部触发事件选择为更新事件 - 启动ADC1的通道5并配置相关参数 - 外部触发转换源选择TIM3的外部触发事件 - 启动ADC1/2/3全局中断 - 重新实现ADC转换完成中断回调HAL_ADC_ConvCpltCallback()函数 - 在回调函数中读取ADC转换值并通过串口输出 - 在主函数中启动定时器和ADC转换” 6.2、实验现象 烧录程序上电后打开串口串口会每100ms传来一次ADC采集的数据旋转滑动变阻器从一端到另一端可以看到ADC采集到的值从0逐渐变为最大值4095 7、软件触发ADC采集 如果你希望不采用定时器触发中断采集的方式而是想使用软件手动触发轮询采集的方式需要先将ADC规则转换模式中触发源修改为软件触发然后使用HAL_ADC_Start()启动转换使用HAL_ADC_PollForConversion()轮询检测是否转换完成转换完成后使用可以HAL_ADC_GetValue()获取转换后的ADC值具体参考如下图所示 源代码如下 HAL_ADC_Start(hadc1); if(HAL_ADC_PollForConversion(hadc1,200)HAL_OK) {uint32_t valHAL_ADC_GetValue(hadc1);uint32_t Volt(3300*val)12;printf(val:%d, Volt:%d\r\n,val,Volt); } HAL_Delay(500);8、注释详解 注释1图片来自STM32F4xx中文参考手册 RM0090 注释2图片来自【STM32】HAL库 STM32CubeMX教程九---ADC_cubemx adc-CSDN博客 参考资料 STM32Cube高效开发教程基础篇
http://www.hkea.cn/news/14569631/

相关文章:

  • 自己开公司 自己做网站wordpress查询标签
  • 杭州九鸿科技网站开发和网站建设签合同
  • 实业公司网站模板网站建设开票项目是什么
  • 网站托管西安网站可信度建设
  • 外贸网站推做嵌入式开发的公司
  • 仿站WordPress开发网站建设公司
  • 做英文网站地图网页设计作品中比较常用的网页元素有哪些
  • 手机微网站怎么设计方案wordpress 屏蔽搜索
  • 4399谁做的网站网站安全建设目的
  • 网站建设注意哪些内容石家庄建站培训
  • 做网站 江门哪些网站做的不好
  • 青岛做网站皆赴青岛博坊网站建设
  • 怎么做导购网站什么 a wordpress
  • 手机商城网站建设做单页网站怎么选产品
  • 祝桥建设网站wordpress如何自建页面
  • 免费网站建设企业海南省旅游专业网站发展电子商务缺乏强大的专业产业资源做后盾
  • 2019做seo网站pageadmin建站系统破解版
  • 香河县建设局网站怎样增加网站的权重
  • 网站设置怎么删除网站在线咨询怎么做
  • 免费的制作手机网站平台东莞营销型网站建设找火速
  • 标准型网站构建网站建设预算申请如何写
  • 网站显示百度地图如何利用开源代码做网站
  • 微网站有什么用服务器租用收费标准
  • wordpress建站收录快wordpress 图片地址
  • 门户网站定义分类id wordpress
  • 网站开发 海淀wordpress圆角插件汉化
  • 建设本地端网站免费ui网站
  • 做网站哪个公司最好wordpress搜索文章内容
  • 深圳企业网站制作公司怎样电子商务很难就业吗
  • asp net网站开发语言的特点dw软件网站建设教程