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

深圳网站关键词优化公司哪家好商城网站建设专业公司

深圳网站关键词优化公司哪家好,商城网站建设专业公司,宁波做网站的大公司排名,平面设计师灵感网站在本次项目中#xff0c;限于空间要求我们选用了STM32F030F4作为控制芯片。这款MCU不但封装紧凑#xff0c;而且自带的Flash空间也非常有限#xff0c;所以我们选择了LL库实现。本文我们将说明如何通过LL库实现PWM信号的输出。 1、概述 我们知道STM32的TIM计时器可以输出P…在本次项目中限于空间要求我们选用了STM32F030F4作为控制芯片。这款MCU不但封装紧凑而且自带的Flash空间也非常有限所以我们选择了LL库实现。本文我们将说明如何通过LL库实现PWM信号的输出。 1、概述 我们知道STM32的TIM计时器可以输出PWM信号这测我们也采用STM32F030F4中的TIM3通用计时器来实现我们想要的功能。TIM3通用计时器由一个16位的自动重新加载计数器组成由一个可编程的预定标器驱动。其结构如下图所示 它可以用于各种目的包括测量输入信号的脉冲长度(输入捕获)或生成输出波形(输出比较和PWM)。使用定时器预标量和RCC时钟控制器预标量输出的PWM脉冲长度和波形周期可以调整从几微秒到几毫秒。我们这里实现一个占空比0%到100%可调频率为200Hz的PWM波形。 2、TIM配置 我们在使用TIM3输出PWM波我们必须对其进行相应的配置。关于TIM3的配置我们需要关注TIM3控制寄存器1 (TIM3_CR1)、TIM3预置寄存器(TIM3_PSC)、TIM3自动重载寄存器(TIM3_ARR)以及对应通道的捕获比较寄存器。 首先来看一看TIM3控制寄存器1 (TIM3_CR1)这个寄存器用于配置TIM计时器。其结构如下 对于TIM3控制寄存器1 (TIM3_CR1)我们主要需要说一下计数器使能CEN位。而其它的位通过初始化函数设置就可以了。 TIM3预置寄存器(TIM3_PSC)用以配置TIM计数器的工作频率这个工作频率的计算是psc的工作频率/psc的值1。其结构如下 TIM3自动重载寄存器(TIM3_ARR)用以配置输出PWM波的频率或者说周期。因为这个值就是计数器的计数周期。其结构如下 我们设置了技术器的时钟频率计数的周期要想得到PWM波我们还需要告诉TIM一个占空比。关于占空比实际上是在捕获比较寄存器中设置的。 3、PWM实现 我们已经如何通过配置TIM得到PWM波形输出我们接下来就是通过软件来实现我们的想法。其配置代码如下 /* TIM3 初始化配置 */ static void TIM3_Init_Configuration(void) {LL_TIM_InitTypeDef TIM_InitStruct {0};LL_TIM_OC_InitTypeDef TIM_OC_InitStruct {0};LL_GPIO_InitTypeDef GPIO_InitStruct {0};/* TIM3时钟使能 */LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);/* TIM3初始化配置 */TIM_InitStruct.Prescaler 47;TIM_InitStruct.CounterMode LL_TIM_COUNTERMODE_UP;TIM_InitStruct.Autoreload TIMPERIOD;TIM_InitStruct.ClockDivision LL_TIM_CLOCKDIVISION_DIV1;LL_TIM_Init(TIM3, TIM_InitStruct);LL_TIM_DisableARRPreload(TIM3);LL_TIM_OC_EnablePreload(TIM3, LL_TIM_CHANNEL_CH4);TIM_OC_InitStruct.OCMode LL_TIM_OCMODE_PWM1;TIM_OC_InitStruct.OCState LL_TIM_OCSTATE_DISABLE;TIM_OC_InitStruct.OCNState LL_TIM_OCSTATE_DISABLE;TIM_OC_InitStruct.CompareValue 0;TIM_OC_InitStruct.OCPolarity LL_TIM_OCPOLARITY_HIGH;LL_TIM_OC_Init(TIM3, LL_TIM_CHANNEL_CH4, TIM_OC_InitStruct);LL_TIM_OC_DisableFast(TIM3, LL_TIM_CHANNEL_CH4);LL_TIM_SetTriggerOutput(TIM3, LL_TIM_TRGO_RESET);LL_TIM_DisableMasterSlaveMode(TIM3);/* TIM使用GPIO时钟使能 */LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOB);/* TIM3 GPIO配置PB1   ------ TIM3_CH4 */GPIO_InitStruct.Pin LL_GPIO_PIN_1;GPIO_InitStruct.Mode LL_GPIO_MODE_ALTERNATE;GPIO_InitStruct.Speed LL_GPIO_SPEED_FREQ_LOW;GPIO_InitStruct.OutputType LL_GPIO_OUTPUT_PUSHPULL;GPIO_InitStruct.Pull LL_GPIO_PULL_NO;GPIO_InitStruct.Alternate LL_GPIO_AF_1;LL_GPIO_Init(GPIOB, GPIO_InitStruct);LL_TIM_CC_EnableChannel(TIM3,LL_TIM_CHANNEL_CH4);LL_TIM_EnableCounter(TIM3); } 在这段配置代码中有几个值需要说一下。Prescaler 值我们设为47所以在48MHz的系统时钟下TIM计数器的工作频率就是1MHz。Autoreload 的值我们设为了5000所以可以得到PWM的频率为200Hz。CompareValue值设为了0所以我们只能得到占空比为0%的PWM。若我们想要得到占空比为50%的PWM则CompareValue值应设为2500才行。配置完成后各寄存器的值如下图所示 这要得到的只是固定占空比的PWM波若想动态修改占空比则需要修改捕获比较寄存器的值。使用函数LL_TIM_OC_SetCompareCH4(TIM3,pulse)就可以了其中pulse是处于0到Autoreload 的值的整数。 4、总结 我们通过上述操作就实现了基于LL库的PWM波的输出。我们将代码下载到目标板并修改占空比和监视器波形输出。 上图是占空比为50%的波形图。 上图是占空比为20%的波形图。 上图是占空比为80%的波形图。 欢迎关注
http://www.huolong8.cn/news/265355/

相关文章:

  • 怎么做投票管理系统后台网站建网站来做什么
  • 电商网站订烟软件网站开发
  • 网站结构如何优化食品公司建设网站目的
  • 手机有软件做ppt下载网站个人网站建设方案实施
  • 做网站排名收益免费flash网站源码带后台
  • 科技网络公司怎么取名字济南网站seo
  • html网页设计环保网站动漫设计与制作专业学校
  • 有域名和主机怎么做网站百度开户推广
  • 不会代码可以做网站维护吗一家公司做网站需要什么资料
  • 团购网站销售技巧网络网站制作技巧
  • 婚纱摄影网站大全想建书画网站怎么做的
  • 网站建设技术jsp课程设计咨询企业网站模板
  • 爱站网关键词wordpress主题首页幻灯片怎么修改
  • 网站建设侵权行为有哪些做家纺的网站
  • 新龙华网站建设青海做高端网站建设的公司
  • 电脑网站历史记录怎么查看怎么盗用网站
  • 北京公司建网站一般需要多少钱网站做等保是按照什么定级别的
  • 宿州集团网站建设网站制作方案要点
  • 常州有哪些做阿里巴巴网站的电子创意设计网站
  • 彩票网站代理怎么做网站后台信息管理怎么做
  • 自己做的网站能上传吗施工企业对下结算容易出现的问题
  • 兰州建设网站公司干煤棚网架公司
  • 网站建设优化规划书响水做网站
  • 电商网站设计工作内容东莞公司网站建设公司哪家好
  • 专用车网站建设价格网站页面统计代码是什么意思
  • 建设网站是否等于开展网络营销h5网站建设h
  • 广东网站建设专业公司哪家好珠海市建设工程交易网
  • wordpress怎样显示子类目郑州外语网站建站优化
  • 做跨国婚恋网站赚钱吗鸿邑科技 网站建设
  • 做地方网站论坛赚钱网站建设需要注意的