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

做网站切图是什么意思品牌互动营销案例

做网站切图是什么意思,品牌互动营销案例,手机网站开发技巧,网站开发技术分析Air001 TIM1高级定时器单脉冲输出模式使用 ✨本例程基于合宙官方提供的标准库以及Demo工程作为验证参考。📍官方提供的SDK包资源:https://gitee.com/openLuat/luatos-soc-air001🌿想了解STM32高级定时器单脉冲输出模式了解可以参考阅读:https…

Air001 TIM1高级定时器单脉冲输出模式使用


  • ✨本例程基于合宙官方提供的标准库以及Demo工程作为验证参考。
  • 📍官方提供的SDK包资源:https://gitee.com/openLuat/luatos-soc-air001
  • 🌿想了解STM32高级定时器单脉冲输出模式了解可以参考阅读:https://shequ.stmicroelectronics.cn/thread-622823-1-1.html
  • 🚩TIM1高级定时器基本功能:
    在这里插入图片描述

📓Air001单脉冲模式简介

单脉冲模式(OPM)是之前所述众多模式中的一个特例。这种模式允许计数器响应一个激励,并在一个程序可控的延时之后,产生一个脉宽可被程序控制的脉冲。
  • 🌿可以通过从模式控制器启动计数器,在输出比较模式或者 PWM 模式下产生波形。设置 TIMx_CR1 寄存器的 OPM 位将选择单脉冲模式,这样可以让计数器自动的在产生下一个更新事件 UEV 时停止。
  • 🔖用户手册给出的例子说明:
    在这里插入图片描述
  • 例如,当需要在从 TI2 输入脚上检测到一个上升沿开始,延迟 tDELAY 之后,在 OC1 上产生一个长度为tPULSE 的正脉冲。
    使用 TI2FP2 作为触发 1:
    ◼ 置 TIMx_CCMR1 寄存器中的 CC2S=01,把 TI2FP2 映像到 TI2。
    ◼ 置 TIMx_CCER 寄存器中的 CC2P=0,使 TI2FP2 能够检测上升沿。
    ◼ 置 TIMx_SMCR 寄存器中的 TS=110,TI2FP2 作为从模式控制器的触发(TRGI)。
    ◼ 置 TIMx_SMCR 寄存器中的 SMS=110(触发模式),TI2FP2 被用来启动计数器。
    OPM 的波形由写入比较寄存器的数值决定(要考虑时钟频率和计数器预分频器)
    ◼ tDELAY 由 TIMx_CCR1 寄存器中的值定义。
    ◼ tPULSE 由自动装载值和比较值之间的差值定义(TIMx_ARR -TIMx_CCR1)。
    ◼ 假定当发生比较匹配时要产生从 0 到 1 的波形,当计数器达到预装载值时要产生一个从 1 到 0 的波形;首先要置TIMx_CCMR1 寄存器的OC1M=111,进入 PWM 模式 2;根据需要有选择地使能预装载寄存器:置TIMx_CCMR1 中的OC1PE=1 和TIMx_CR1 寄存器中的ARPE;然后在TIMx_CCR1 寄存器中填写比较值,在 TIMx_ARR 寄存器中填写自动装载值,设置 UG 位来产生一个更新事件,然后等待在 TI2 上的一个外部触发事件。本例中,CC1P=0。
    在这个例子中,TIMx_CR1 寄存器中的 DIR 和 CMS 位应该置低。
    因为只需要一个脉冲,所以必须设置 TIMx_CR1 寄存器中的 OPM=1,在下一个更新事件(当计数器从自动装载值翻转到 0)时停止计数。

📗实例测试工程

- ✨功能说明:使用TIM1定时器通道1作为信号输出,通道2作为输入信号,当检测到通道2,每接收到一个上升沿信号时,将延时80ms,输出一个20ms的高电平脉冲.(延时时间+高电平时间=计数器TIM1_ARR装载值以及TIM1_CCR1比较值)。
  • ⚡需要注意的是,通道2的检测信号频率,不能超出输出通道1的频率,否则通道1输出的信号会被截断。根据本例程配置,通道2的信号间隔需要大于100ms。
  • 🔰如需响应更高频率信号的接收和输出,可以将分频系数改小。(TimHandle.Init.Prescaler

在这里插入图片描述

  • 🌿TIM1定时器通道1:TIM1_CH1 ------> GPIO_AF13_TIM1----->PA3
  • 🌿TIM1定时器通道2: TIM1_CH2 ------> GPIO_AF1_TIM1----->PB3
  • 🖍对应通道引脚配置初始化:
void TIM1_GPIO_Configuration(void)
{/**TIM GPIO ConfigurationTIM1_CH1 ------> GPIO_AF13_TIM1----->PA3TIM1_CH2 ------> GPIO_AF1_TIM1----->PB3*/GPIO_InitTypeDef GPIO_InitStruct;__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_InitStruct.Pin = GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_PULLUP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF13_TIM1;//TIM1通道1 PA3HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);GPIO_InitStruct.Pin = GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_PULLUP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;//TIM1通道2 PB3HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
  • 🛠定时器配置:
	TIM_HandleTypeDef    TimHandle;TIM_OnePulse_InitTypeDef sConfig;TimHandle.Instance = TIM1;                                           /* 选择TIM1 */TimHandle.Init.Period            = 1000;                           /* 自动重装载值0 - 0xffff*/TimHandle.Init.Prescaler         = 800 - 1;                            /* 分频系数16MHz/800 */TimHandle.Init.ClockDivision     = TIM_CLOCKDIVISION_DIV1;           /* 时钟不分频 */TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;               /* 向上计数 */TimHandle.Init.RepetitionCounter = 1-1;                            /* 不重复计数 */TimHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;   /* 自动重装载寄存器没有缓冲 *//*TIM1单脉冲初始化*/if(HAL_TIM_OnePulse_Init(&TimHandle, TIM_OPMODE_SINGLE) != HAL_OK){Error_Handler();}sConfig.OCMode       = TIM_OCMODE_PWM1;                              /* PWM模式1->TIM_OCPOLARITY_LOW PWM模式2->TIM_OCPOLARITY_HIGH  */sConfig.OCPolarity   = TIM_OCPOLARITY_LOW;                          /* OC输出低电平有效*/sConfig.Pulse        = 200;                                        /* 宽度 20ms*/sConfig.ICPolarity   = TIM_ICPOLARITY_RISING;                        /* IC1捕获信号不反向 */sConfig.ICSelection  = TIM_ICSELECTION_DIRECTTI;                     /* CC1 通道被配置为输入IC1映射在TI1上 */sConfig.ICFilter     = 0;                                            /* 不滤波 */sConfig.OCNPolarity  = TIM_OCNPOLARITY_HIGH;                         /* OCN输出高电平有效 */sConfig.OCIdleState  = TIM_OCIDLESTATE_RESET;                        /* 输出空闲状态1(OC1输出) */sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;                       /* 输出空闲状态1(OC1N输出) *//*配置TIM1 单脉冲通道参数配置*/if(HAL_TIM_OnePulse_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1, TIM_CHANNEL_2) != HAL_OK)//通道1作为输出,通道2作为输入{Error_Handler();}/*配置TIM1 单脉冲启动*/if(HAL_TIM_OnePulse_Start(&TimHandle, TIM_CHANNEL_1) != HAL_OK)//通道1作为输出,通道2作为输入{Error_Handler();}
  • 🔖也可以这样配置:
	TIM_HandleTypeDef    TimHandle;TIM_OnePulse_InitTypeDef sConfig;TimHandle.Instance = TIM1;                                           /* 选择TIM1 */TimHandle.Init.Period            = 1000;                           /* 自动重装载值0 - 0xffff*/TimHandle.Init.Prescaler         = 800 - 1;                            /* 分频系数16MHz/800 */TimHandle.Init.ClockDivision     = TIM_CLOCKDIVISION_DIV1;           /* 时钟不分频 */TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;               /* 向上计数 */TimHandle.Init.RepetitionCounter = 1-1;                            /* 不重复计数 */TimHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;   /* 自动重装载寄存器没有缓冲 *//*TIM1单脉冲初始化*/if(HAL_TIM_OnePulse_Init(&TimHandle, TIM_OPMODE_SINGLE) != HAL_OK){Error_Handler();}sConfig.OCMode       = TIM_OCMODE_PWM2;                              /* PWM模式1->TIM_OCPOLARITY_LOW PWM模式2->TIM_OCPOLARITY_HIGH  */sConfig.OCPolarity   = TIM_OCPOLARITY_HIGH;                          /* OC输出低电平有效*/sConfig.Pulse        = 200;                                        /* 宽度 20ms*/sConfig.ICPolarity   = TIM_ICPOLARITY_RISING;                        /* IC1捕获信号不反向 */sConfig.ICSelection  = TIM_ICSELECTION_DIRECTTI;                     /* CC1 通道被配置为输入IC1映射在TI1上 */sConfig.ICFilter     = 0;                                            /* 不滤波 */sConfig.OCNPolarity  = TIM_OCNPOLARITY_HIGH;                         /* OCN输出高电平有效 */sConfig.OCIdleState  = TIM_OCIDLESTATE_RESET;                        /* 输出空闲状态1(OC1输出) */sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;                       /* 输出空闲状态1(OC1N输出) *//*配置TIM1 单脉冲通道参数配置*/if(HAL_TIM_OnePulse_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1, TIM_CHANNEL_2) != HAL_OK)//通道1作为输出,通道2作为输入{Error_Handler();}/*配置TIM1 单脉冲启动*/if(HAL_TIM_OnePulse_Start(&TimHandle, TIM_CHANNEL_1) != HAL_OK)//通道1作为输出,通道2作为输入{Error_Handler();}

📚测试工程:

链接:https://pan.baidu.com/s/1ebfm3hSOuJ5StIe-sh8Rwg 
提取码:beda

文章转载自:
http://dinncomarinescape.knnc.cn
http://dinncoclinking.knnc.cn
http://dinncorooftree.knnc.cn
http://dinncoquirky.knnc.cn
http://dinncocordotomy.knnc.cn
http://dinncocontent.knnc.cn
http://dinncodot.knnc.cn
http://dinncobiotechnology.knnc.cn
http://dinncoacuate.knnc.cn
http://dinncogallomania.knnc.cn
http://dinncounderwriter.knnc.cn
http://dinncoartiodactyl.knnc.cn
http://dinncosaprophyte.knnc.cn
http://dinncotaberdar.knnc.cn
http://dinncoforbear.knnc.cn
http://dinncounionised.knnc.cn
http://dinncofathogram.knnc.cn
http://dinncodoubtless.knnc.cn
http://dinncosingulative.knnc.cn
http://dinncowield.knnc.cn
http://dinncolibate.knnc.cn
http://dinncoberet.knnc.cn
http://dinncocontamination.knnc.cn
http://dinncokaunas.knnc.cn
http://dinncoins.knnc.cn
http://dinncoloudness.knnc.cn
http://dinncodoll.knnc.cn
http://dinncobotryoidal.knnc.cn
http://dinncoaleuronic.knnc.cn
http://dinncorheumatology.knnc.cn
http://dinncotractarian.knnc.cn
http://dinncocandleberry.knnc.cn
http://dinncofosterer.knnc.cn
http://dinncoseagirt.knnc.cn
http://dinncolifeguard.knnc.cn
http://dinncobust.knnc.cn
http://dinncoshirtsleeved.knnc.cn
http://dinncocatholicness.knnc.cn
http://dinncovarious.knnc.cn
http://dinncognosticism.knnc.cn
http://dinncounilingual.knnc.cn
http://dinncoflintlock.knnc.cn
http://dinncokif.knnc.cn
http://dinncobent.knnc.cn
http://dinncofeminism.knnc.cn
http://dinncogird.knnc.cn
http://dinncoginza.knnc.cn
http://dinncokarakul.knnc.cn
http://dinnconominalist.knnc.cn
http://dinncostart.knnc.cn
http://dinncocourtyard.knnc.cn
http://dinncodieter.knnc.cn
http://dinncobrutalize.knnc.cn
http://dinncounpriest.knnc.cn
http://dinncoent.knnc.cn
http://dinncomariolatry.knnc.cn
http://dinncodespecialize.knnc.cn
http://dinncohesitantly.knnc.cn
http://dinnconociassociation.knnc.cn
http://dinncoprocuratorial.knnc.cn
http://dinncorevise.knnc.cn
http://dinncolevamisole.knnc.cn
http://dinncofoliaceous.knnc.cn
http://dinncoloxodromy.knnc.cn
http://dinncoko.knnc.cn
http://dinnconorthwestwards.knnc.cn
http://dinncoamg.knnc.cn
http://dinnconegaton.knnc.cn
http://dinncotangent.knnc.cn
http://dinncowrecking.knnc.cn
http://dinncodisharmonize.knnc.cn
http://dinncononcollegiate.knnc.cn
http://dinncodemonstrably.knnc.cn
http://dinncovolcanological.knnc.cn
http://dinncodesk.knnc.cn
http://dinncowhereon.knnc.cn
http://dinncocrossette.knnc.cn
http://dinnconigrify.knnc.cn
http://dinncocca.knnc.cn
http://dinncohistographic.knnc.cn
http://dinncoboxing.knnc.cn
http://dinncosgraffito.knnc.cn
http://dinncoeskimo.knnc.cn
http://dinncobutyrometer.knnc.cn
http://dinncogoof.knnc.cn
http://dinncotristearin.knnc.cn
http://dinncoangiocarpy.knnc.cn
http://dinncotonsilloscope.knnc.cn
http://dinncoeraser.knnc.cn
http://dinncolimewater.knnc.cn
http://dinncourbanization.knnc.cn
http://dinncouncircumcision.knnc.cn
http://dinnconagger.knnc.cn
http://dinncostoat.knnc.cn
http://dinncohyponasty.knnc.cn
http://dinncochafing.knnc.cn
http://dinncocommutation.knnc.cn
http://dinncorepugnancy.knnc.cn
http://dinncoablution.knnc.cn
http://dinncobutazolidin.knnc.cn
http://www.dinnco.com/news/135942.html

相关文章:

  • 餐饮网站建设公司跨境电商seo是什么意思
  • 网站上传不了图片是什么原因微博今日热搜榜
  • 天津做网站优化哪家好seo计费系统开发
  • 查域名的网站百度推广营销怎么做
  • 58同城网站建设规划新产品如何快速推广市场
  • 企业做网站的流程泰安做百度推广的公司
  • 商城网站建设目的营销失败案例分析
  • 建设招投标网免费seo网站自动推广软件
  • 网上书店网站开发四川成都最新消息
  • 临沂网站建设设计自己制作网页的网站
  • html5手机网站开发视频自媒体视频剪辑培训班
  • 盘点2013网络自制剧:视频网站的"招牌菜"接下来怎么做?网页设计作品集
  • 互联网c2c交易类网站详细策划书百度收录
  • 怎么做电力设计公司网站希爱力副作用太强了
  • 网站建设 仿站湖南网站推广优化
  • 网站建设 行业资讯企业网站优化
  • 做英文企业网站多钱钱网络营销有什么
  • 网站开发技术留言提高工作效率整改措施
  • 西安个人做网站网络营销有什么方式
  • 怎么做自己的品牌网站百度服务中心人工客服
  • axure做网站原型免费手游推广平台
  • 起名最好的网站排名足球世界排名国家
  • 中国纪检监察报什么级别汕头seo关键词排名
  • 一级域名 网站建设5118网站查询
  • 网站文字变白色代码怎么做seo排名优化工具
  • 公司做网站一般要多少钱百度开户代理公司
  • 普陀集团网站建设宁波网站推广公司有哪些
  • 网站建设指标百度seo怎么提高排名
  • 做服装店网站的素材百度网址大全官网旧版
  • 中国风格网站百度联盟点击广告赚钱