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

河南郑州网站推广优化外包上海高端网站开发站霸网络

河南郑州网站推广优化外包,上海高端网站开发站霸网络,行业网站如何推广,哪有备案好的网站定时器用来产生PWM输出#xff1a; STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出#xff0c;这样#xff0c;STM32 最多可以同时产生…定时器用来产生PWM输出 STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出这样STM32 最多可以同时产生 30 路 PWM 输出 STM32 PWM工作过程 STM32 PWM工作过程通道1为例 CCR1:捕获比较(值)寄存器x1,2,3,4):设置比较值。 CCMR1: OC1M[2:0]位对于PWM方式下用于设置PWM模式1【110】或者PWM模式2【111】 CCER:CC1P位输入/捕获1输出极性。0高电平有效1低电平有效。 CCER:CC1E位输入/捕获1输出使能。0关闭1打开。 总结几个关键词 有效电平高电平 无效电平低电平 高电平有效高电平可以使能相应功能 低电平有效低电平可以使能相应功能 PWM模式1 PWM模式2 寄存器TIMx_CCMR1的OC1M[2:0]位来分析 STM32 PWM工作过程 STM32 PWM void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); 自动重载的预装载寄存器 捕获/比较模块由一个预装载寄存器和一个影子寄存器组成。读写过程仅操作预装载寄存器。在捕获模式下捕获发生在影子寄存器上然后再复制到预装载寄存器中。在比较模式下预装载寄存器的内容被复制到影子寄存器中然后影子寄存器的内容和计数器进行比较。根据TIMx_CR1寄存器中APRE位的设置APRE0时预装载寄存器的内容可以随时传送到影子寄存器此时二者是连通的而APRE1时在每一次更新事件(UEV)时才把预装在寄存器的内容传送到影子寄存器。 void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);简单的说ARPE1,ARR立即生效APRE0,ARR下个比较周期生效。 STM32 定时器3输出通道引脚 PWM输出库函数 void TIM_OCxInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);typedef struct {uint16_t TIM_OCMode; //PWM模式1或者模式2uint16_t TIM_OutputState; //输出使能 OR失能uint16_t TIM_OutputNState;uint16_t TIM_Pulse; //比较值写CCRxuint16_t TIM_OCPolarity; //比较输出极性uint16_t TIM_OCNPolarity; uint16_t TIM_OCIdleState; uint16_t TIM_OCNIdleState; } TIM_OCInitTypeDef;TIM_OCInitStructure.TIM_OCMode TIM_OCMode_PWM2; //PWM模式2 TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable; //比较输出使能 TIM_OCInitStructure. TIM_Pulse100; TIM_OCInitStructure.TIM_OCPolarity TIM_OCPolarity_High; //输出极性:TIM输出比较极性高 TIM_OC2Init(TIM3, TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2设置比较值函数 void TIM_SetCompareX(TIM_TypeDef* TIMx, uint16_t Compare2);使能输出比较预装载 void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);使能自动重装载的预装载寄存器允许位 void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);PWM输出配置步骤 1、 使能定时器3和相关IO口时钟 使能定时器3时钟 RCC_APB1PeriphClockCmd();使能GPIOB时钟 RCC_APB2PeriphClockCmd();2、 初始化IO口为复用功能输出 函数 GPIO_Init(); GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; 3、 这里我们是要把PB5用作定时器的PWM输出引脚所以要重映射配置所以需要开启AFIO时钟。同时设置重映射。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); 4、 初始化定时器ARR,PSC等 TIM_TimeBaseInit();5、 初始化输出比较参数: TIM_OC2Init();6、 使能预装载寄存器 TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); 7、 使能定时器 TIM_Cmd();8、 不断改变比较值CCRx达到不同的占空比效果: TIM_SetCompare2();PWM 初始化代码 #include pwm.h #include sys.hvoid PWM_Init(u16 arr,u16 psc) {GPIO_InitTypeDef GPIO_InitStrue;TIM_TimeBaseInitTypeDef TIM_TimStrue;TIM_OCInitTypeDef TIM_OCInitStrue;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能相应定时器的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能相应GPIO的时钟GPIO_InitStrue.GPIO_ModeGPIO_Mode_AF_PP;//设置模式为复用输出GPIO_InitStrue.GPIO_PinGPIO_Pin_5;GPIO_InitStrue.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_InitStrue);//初始化GPIOB.5RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启AFIO时钟GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//设置重映射TIM_TimStrue.TIM_ClockDivisionTIM_CKD_DIV1;//设置时钟分割:TDTS Tck_timTIM_TimStrue.TIM_CounterModeTIM_CounterMode_Up;TIM_TimStrue.TIM_Periodarr;//自动装载值TIM_TimStrue.TIM_Prescalerpsc;//预分频系数的设置TIM_TimeBaseInit(TIM3,TIM_TimStrue);//初始化定时器TIM_OCInitStrue.TIM_OCModeTIM_OCMode_PWM2;//PWM模式2TIM_OCInitStrue.TIM_OCPolarityTIM_OCPolarity_High;//比较输出极性,TIM输出比较极性高TIM_OCInitStrue.TIM_OutputStateTIM_OutputState_Enable;//输出使能 TIM_OCInitStrue.TIM_Pulse100;//比较值写CCRxTIM_OC2Init(TIM3,TIM_OCInitStrue);//根据指定的参数初始化外设TIM3 OC2(因为是通道2所以是OC2)TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能预装载寄存器TIM_Cmd(TIM3,ENABLE);//使能定时器 } 主函数代码 #include sys.h #include delay.h #include led.h #include pwm.hint main(void){ u16 led0pwmval0;u8 dir1; delay_init(); //延时函数初始化 LED_Init(); //LED端口初始化PWM_Init(899,0); //不分频。PWM频率72000000/90080Khzwhile(1){delay_ms(10); if(dir)led0pwmval;else led0pwmval--;if(led0pwmval300)dir0;if(led0pwmval0)dir1; TIM_SetCompare2(TIM3,led0pwmval);//不断改变比较值CCRx达到不同的占空比效果 } }以上代码可以实现呼吸灯的效果
http://www.zqtcl.cn/news/803635/

相关文章:

  • 重庆网站开发设计公司电话资源网站优化排名
  • 国土分局网站建设方案外贸seo网站
  • 营销型网站建设易网拓烟台h5网站建设公司
  • PHP网站开发都需要学什么中介网站模板
  • 网站建设与维护模板官方网站建设费用应入什么科目
  • 网站建设企业关键词seo关键词库
  • 美容院网站源码wordpress scandir
  • 长春电商网站建设报价北京创意设计协会网站
  • 企业3合1网站建设公司加强政协网站建设
  • 专业做互联网招聘的网站有哪些内容百度搜索引擎推广收费标准
  • 物流网站开发系统论文怎么知道网站程序是什么做的
  • 湖南高端网站制作公php网站后台
  • 建好的网站在哪里wordpress部署到git
  • 浙江坤宇建设有限公司网站毕业设计 旅游网站建设
  • 做网站月收入多少视频短视频api
  • 泰安网站建设哪家强网站流量指标
  • 网站毕业设计开题报告wordpress账户密码忘记
  • 做网站学费多少钱0基础学app程序开发
  • 忻州建站公司辽宁省建设执业信息网官网
  • 北京网站建设 云智互联集安网站建设
  • 无锡市建设培训中心网站私人订制软件平台
  • 宁波网站设计推荐荣盛网络招远网站制作
  • 网站开发维护运维室内设计师怎么找
  • 网站建设如何增加二级页面学网络工程好找工作吗
  • 网站设计的研究方法有哪些wordpress样式路径
  • 网站建设与网页设计...南通网站seo报价
  • 网站开发毕业设计说明书范文关键词排名代做
  • 本地环境建设网站南通网站制作怎样
  • 注册公司多少钱不用交税南昌seo网站推广费用
  • 网站建设与运营的论文的范本wordpress弹框登陆