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

网站建设中的注册和登录页面华东建设发展设计有限公司网站

网站建设中的注册和登录页面,华东建设发展设计有限公司网站,新手学做网站步骤,网站大图轮播一、文章目的 记录自己从学习了定时器理论-代码实现使用定时-查询数据手册#xff0c;加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。 上图为参考手册里通用定时器框图#xff0c;关于定时器各种情况的工作都在上面了#xff0c;在理论学习和实际应用后…一、文章目的 记录自己从学习了定时器理论-代码实现使用定时-查询数据手册加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。 上图为参考手册里通用定时器框图关于定时器各种情况的工作都在上面了在理论学习和实际应用后再来看这张图会觉得豁然开朗。 定时器基本的单元为16位自动装载寄存器ARR16位预分频器PSC计数器CNT另外有4个独立通道在我看来只有两种大功能 – 输入捕获 如测输入信号频率、占空比、编码器 – 输出比较 如输出PWM波控制电机、舵机 根据这两种功能可以将定时器配置为不同模式比如输出pwm的PWM模式、读取编码器的Encoder模式。 二、定时器时钟来源选择极为重要 ● 内部时钟(CK_INT) ● 内部触发输入(ITRx)使用一个定时器作为另一个定时器的预分频器 ● 外部时钟模式1外部输入脚(TIx) 4个独立通道的输入 ● 外部时钟模式2外部触发输入(ETR) 模式1和模式2看上去非常相似 清楚定时器的时钟来源后续才能理解定时器的各种模式 三、 理解最基本的定时 在时钟的驱动下计数器CNT递增1默认向上计数当到达自动重装载寄存器ARR中的目标值时溢出清零产生中断循环这个过程。 HAL库实现基本定时 1、打开并设置基本定时器 选择为内部时钟即内部时钟模式 设置以下参数定时器的时钟频率 fcf /(PSC1)/(ARR1),f为单片机时钟来源。 预分频器Prescaler PSC自动重装寄存器CouterPeriod ARR输入滤波器的频率分频InternalClockDivision一般不需要2、打开中断 3、main函数中初始化TIM2 HAL_TIM_Base_Start_IT(htim2);4、驱动函数中找回调函数然后在main.c中重写 __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim); //原型 //重写 uint16_t hhRetCount0; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){if(htimhtim2){hhRetCount1;} }四 、输出比较 此项功能是用来控制一个输出波形或者指示一段给定的的时间已经到时。 定时器的每个输出通道能够独立的产生一路PWM信号由ARR寄存器确定频率、由CCR寄存器确定占空比的信号。 HAL库实现生成PWM驱动舵机、电机、呼吸灯 1、设置TIM2定时器相关参数 生成1000HZ占空比为20的PWM波形 HAL库实现编码器读取 2、main函数中启动生成PWM HAL_TIM_PWM_Start(htim2,TIM_CHANNEL_1); __HAL_TIM_SET_COMPARE(htim2,TIM_CHANNEL_3,Speed); //设置CCR值控制占空比五 、输入捕获 输入捕获模式下当通道输入引脚出现指定电平跳变时类似于中断当前CNT的值将被锁存到CCR中可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。 可配置为PWMI模式(不清楚没关系)同时测量频率和占空比也可配合主从触发模式下文中从模式的复位模式实现硬件全自动测量触发输入实现定时器的自动清零。 对于同一个定时器输入捕获和输出比较只能同时用一个。 输入捕获将CNT的值写到CCR 输出比较根据CNT和CCR的比较后输出 输入捕获测频率、测占空比 从模式-复位模式下上升沿触发因此上升沿来临时计数器CNT的值存进了CCR1中然后自动清零下降沿来临时CNT的值存进了CCR2中并未清零。然后可以计算频率(用CCR1)和占空比用CCR1和CCR2。 HAL库实现输入测频率、占空比 1、TIM2生成PWM待测信号、启动2、设置TIM3定时器相关参数 通道1用于测频率 设置TI1FP1为ResetMode,即清空计数 使用内部时钟 通道1设置为输入捕获模式 设置预分频器为72 自动重装寄存器为65535 输入捕获上升沿 通道2用于测占空比 打开通道2为交叉模式、设置下降沿触发 通道1 通道2 3、打开TIM3的全局中断、main中开启TIM3 HAL_TIM_IC_Start_IT(htim3, TIM_CHANNEL_1);3、找到输入捕获回调函数并重写 uint32_t capture; int32_t freq; uint32_t DutyResult; void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {if (htim-Instance TIM3) {if (htim-Channel HAL_TIM_ACTIVE_CHANNEL_1) {// 上升沿触发的中断capture HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1)1;uint32_t aaHAL_RCC_GetPCLK1Freq();uint32_t bb(htim-Instance-PSC1);uint32_t ccHAL_RCC_GetPCLK1Freq()/(htim-Instance-PSC1);freq1000000/capture;} else if (htim-Channel HAL_TIM_ACTIVE_CHANNEL_2) {// 下降沿触发的中断uint32_t capture2 HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2)1;DutyResultcapture2 *100 / capture;}} }可动态修改TIM2的频率和占空比 __HAL_TIM_SET_PRESCALER(htim2,72-1);//10000HZ __HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, 83);//83%HAL库实现读取旋转编码器 每个高级定时器和通用定时器都拥有一个编码器接口借用输入捕获IC的通道1和通道2。 当定时器设置为编码器接口时定时器的计数器就不会由内外部时钟控制而是由两个正交编码器信 号控制。另外还可以根据选择的计数方式TI1、TI2计数还是都计数以及信号上下沿、电平高低的判断确定方向。 利用CUBMX配置编码器模式非常简单 1、设置相关参数 打开编码器模式使用CH1、CH2两个通道 设置定时器的相关参数。由于是检测速度所以这里就不分频尽可能让定时器快点。计数器 设置最大防止输入信号频率太高溢出。 设置计数模式TI1计数和TI2计数 设置信号不反向 2、main函数中打开定时器编码器模式 HAL_TIM_Encoder_Start(htim3, TIM_CHANNEL_ALL);3、显示计数值 计数器CNT返回的是一个无符号的 uint32_t 数因此如果希望反转能够显示负数还需要将CNT值转换为有符号的 int16_t 数。 //得到计数值 int16_t CNT__HAL_TIM_GET_COUNTER(htim3); 4、计算速度 如果还希望计算编码器速度那就秒钟读取一次定时器的计数值(编码器的脉冲)并清空得到的数字就是当前的速度单位是Plus/S int16_t hhGetEncoderSpeedCountAndReset(){int16_t Speed;Speed__HAL_TIM_GET_COUNTER(htim3);__HAL_TIM_SET_COUNTER(htim3,0);return Speed; }六、主从模式 根据定时器的时钟来源或者说是否受到从模式控制器的控制可以将定时器的工作状态分为主模式和从模式。 首先触发信号分两大类触发输入信号TRGI简单地讲就是从外部引入到本定时器的信号另一类就是触发输出信号即TRGO信号它是定时器输出给其它定时器或外设的触发信号。 从数目上有讲一般可以多达8个大致分为三类 第一类来自定时器自身输入通道1或通道2的输入信号经过极性选择和滤波以后生成的触发信号连接到从模式控制器进而控制计数器的工作。 TI1FP1 、 TI2FP2、TI1F_ED 第二类来自于外部触发脚ETR脚经过极性选择、分频、滤波以后的信号经过触发输入选择器连接到从模式控制器 ETRF 第三类来自其它定时器的触发输出信号TRGO通过内部线路连接到本定时器的触发输入控制器而连接到从模式控制器。(ITR0、ITR1、ITR2、ITR3) 这3类信号有个共同特点都要经过触发输入选择器而连接到从模式控制器从而使得计数器的工作受到从模式控制器的控制或影响基于这一点定时器工作在从模式。而主模式定时器内部信号映射到TRGO引脚用于触发别的外设。 七、定时器的4种从模式 复位模式门控模式触发模式外部时钟模式2触发模式 在我看来从模式其实就是在正常使用定时器外再添加一个控制功能根据实际的需要再配置即可。 复位模式 在发生一个触发输入事件时计数器和它的预分频器能够重新被初始化同时如果TIMx_CR1寄存器的URS位为低还会产生一个更新事件UEV然后所有的预装载寄存器(TIMx_ARRTIMx_CCRx)都会被更新。 例如TI1输入端的上升沿导致向上计数器被清零计数器开始依据内部时钟计数然后正常运转直到TI1出现一个上升沿此时计数器被清零然后从0重新开始计数。同时触发标志(TIMx_SR寄存器中的TIF位)被设置根据TIMx_DIER寄存器中TIE(中断使能)位和TDE(DMA使能)位的设置产生一个中断请求或一个DMA请求。 门控模式 按照选中的输入端电平使能计数器。 例如下图计数器只在TI1输入电平为低时计数1 触发模式 按照输入端上选中的事件使能计数器。 例如下图计数器在TI2输入的上升沿开始向上计数 外部时钟模式2触发模式 外部时钟模式2可以与另一种从模式(外部时钟模式1和编码器模式除外)一起使用。 外部时钟模式2ETR信号被用作外部时钟的输入在复位模式、门控模式或触发模式时可以选择另一个输入作为触发输入。 例如下图TI1输入上升沿使能计数器然后在ETR信号每次的上升沿计数 八、其他 遇到查询数据手册即可
http://www.hkea.cn/news/14310015/

相关文章:

  • 电子商务网站建设与管理实验报告好看英文网站
  • 在北京做网站seo多少钱seo网站制作优化
  • 网站建设文化服务句容建设工程备案网站
  • 网站建设实验感想网站制作多少钱资讯
  • 郑州建设银行网站房贷网点在哪wordpress关键字设置
  • 个人相册网站建设报告怎样做公司宣传网站
  • 租空间做网站深圳市做网站的公司
  • 网站专题欣赏陶瓷马赛克 网站建设 中企动力
  • 国外网站风格宁波市建设工程检测协会网站
  • 萍乡建网站自己做书画交易网站
  • 做网站要商标吗沙井网站推广
  • 武进网站建设设计网站需要的知识
  • 网站建设案例效果番禺做网站
  • 淘宝网官方网站化妆品网站的建设 论文
  • php个人网站源码带音乐网站怎么查看访问量
  • 自己有网站怎么赚钱去除wordpress活动及新闻
  • 网站开发课程内部培训网站开发定制企业
  • 自己的网站怎么做wordpress yoast
  • 旅行网站建设方案策划书wordpress图片cdn
  • 装饰工程有限公司经营范围祥云网站优化
  • 网站建设开发公司哪家好织梦网站首页文字修改
  • 网站开发设计报告wordpress怎么加目录
  • 南京做网站的额100m的光纤可以做网站吗
  • 花桥做网站建设银行甘肃兰州分行网站
  • 医疗机构网站模板深圳建设工程质量协会网站
  • 什么做直播网站好wordpress 标签模板下载
  • 试析企业网站建设模式做网站项目需求分析是什么
  • 网站搭建福州公司wordpress 微博社交
  • 导航网站模板京东商城商务网站建设目的
  • 做西装的网站进一步加强舆情管控