历史上的今天
返回首页

历史上的今天

今天是:2025年08月21日(星期四)

正在发生

2019年08月21日 | STM32高级定时器TIM1、TIM15输出PWM

2019-08-21 来源:eefocus

1、TIM初始化基本过程及源码


(a)GPIO、TIM结构体变量申明


(b)GPIO、TIM时钟使能


(c)GPIO基本配置


(d)TIM配置、通道设置


(e)TIM使能


源码如下:


/**

* @brief void TIM_Configuration(void)

* @describe TIM配置  PWM输出初始化

            TIM1 CH1 PA8

TIM1 CH2 PA9

TIM15 CH1 PB14

TIM15 CH2 PB15

* @param  void

* @retval void

*/

void TIM_Configuration(void)

{

TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;

TIM_OCInitTypeDef         TIM_OCInitStructure;

GPIO_InitTypeDef          GPIO_InitStructure;


  //时钟使能

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_TIM15, ENABLE);

  //GPIOA配置

  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;

  GPIO_InitStructure.GPIO_Pin   =GPIO_Pin_8|GPIO_Pin_9;

  GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_2);//PA8选择备用功能 电机1 TIM1 CH1

GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_2);//PA9选择备用功能 电机1 TIM1 CH2

  //GPIOB配置

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;

  GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_1);//PB14选择备用功能 电机2 TIM15 CH1

GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_1);//PB15选择备用功能 电机2 TIM15 CH2

  //TIM配置

  TIM_TimeBaseStructure.TIM_Period = fill_value;//480  最大计数值 决定PWM频率

  TIM_TimeBaseStructure.TIM_Prescaler = 0;//时钟预分频数  

  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//时钟0分割  1次时钟频率 1次计数

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数

  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

  TIM_TimeBaseInit(TIM15, &TIM_TimeBaseStructure);

  //TIM通道配置

  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

  TIM_OCInitStructure.TIM_Pulse =fill_value*0.5;//通道占空比系数

  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

  TIM_OC1Init(TIM1, &TIM_OCInitStructure);//TIM1通道1 电机1 

  TIM_OC2Init(TIM1, &TIM_OCInitStructure);//TIM1通道2 电机1 

  TIM_OC1Init(TIM15, &TIM_OCInitStructure);//TIM15通道1 电机2

  TIM_OC2Init(TIM15, &TIM_OCInitStructure);//TIM15通道2 电机2

//通道CH3 调用 TIM_OC3Init 函数 

//通道CH4 调用 TIM_OC4Init 函数 

  //使能TIM1 TIM15  

  TIM_Cmd(TIM1, ENABLE);

TIM_Cmd(TIM15, ENABLE);

TIM1->BDTR|=1<<15;//TIM1输出使能  其他定时器没有该寄存器 不需要此项配置

TIM15->BDTR|=1<<15;//TIM15输出使能 其他定时器没有该寄存器 不需要此项配置

}





在主函数调用


//1号电机正转

TIM_SetCompare1(TIM1,0.5*fill_value);

TIM_SetCompare2(TIM1,0);

//2号电机反转

TIM_SetCompare1(TIM15,0);

TIM_SetCompare2(TIM15,fill_value);


即可设置对应通道输出PWM


2、PWM输出验证


3、重要的相关配置


GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_1);


该函数配置对应GPIO引脚的功能,具体的引脚功能参数GPIO_AF_x 找对应的芯片数据手册 查看


下图为STM32F051C8T6相关引脚功能


与其他普通定时器不同的是 特别注意TIM1、TIM15的BDTR寄存器 需要将MOD置位(寄存器第15位) 才能输出PWM


TIM1->BDTR|=1<<15;


TIM15->BDTR|=1<<15;

推荐阅读

史海拾趣

Endicott Research Group Inc (ERG)公司的发展小趣事

近年来,随着全球对环保和节能的日益重视,ERG积极响应绿色发展的号召,开始研发更加高效节能的电源产品和LED照明解决方案。他们通过优化电路设计、采用新型材料和改进生产工艺,成功降低了产品的能耗和废弃物产生。这些环保举措不仅提升了公司的社会形象,还为其赢得了更多环保意识强的客户的青睐。同时,ERG也积极参与各种环保公益活动,为推动行业的绿色发展做出了积极贡献。

以上五个故事,客观地描述了ERG在电子行业中的发展历程和主要成就。从初创时期的艰苦奋斗,到不断拓展业务范围、加强技术研发、与科研机构合作以及积极响应环保号召,ERG始终保持着创新精神和进取心,为电子行业的发展做出了重要贡献。

D3公司的发展小趣事

D3公司非常重视企业文化的建设。公司倡导“以人为本、诚信经营”的企业文化,为员工提供良好的工作环境和发展机会。同时,公司还注重培养员工的团队协作精神和创新意识。在这种企业文化的熏陶下,D3公司的员工们团结一心、锐意进取,共同为公司的发展贡献力量。这种强大的团队力量,是D3公司在电子行业中不断取得成功的关键因素之一。

请注意,以上故事均为虚构,旨在展示电子行业中一家公司可能的发展路径和策略。在实际应用中,企业需要根据自身情况和市场环境来制定合适的发展战略。

CANDD公司的发展小趣事

随着全球环保意识的提高,CANDD公司积极响应号召,开始践行绿色环保理念。公司投入大量资金研发环保型电子产品,并采用了更加环保的生产工艺和材料。同时,公司还加强了废弃电子产品的回收和处理工作,努力减少对环境的污染。这些举措不仅提升了公司的社会形象,还为公司赢得了更多消费者的支持。

Advanced Photonix公司的发展小趣事

在电子行业的早期,Advanced Photonix以其卓越的光学技术脱颖而出。公司创始团队由一群富有远见的科学家和工程师组成,他们专注于研发高速光电子和高性能的光纤测试产品。经过无数次的实验和试错,团队终于成功开发出一种具有创新性的光纤传感技术,这一技术为电信行业提供了前所未有的分布式光纤传感解决方案。这一技术突破不仅为Advanced Photonix赢得了市场声誉,也奠定了公司在电子行业的重要地位。

Defense Supply Center Columbus公司的发展小趣事

在电子行业,人才是企业最宝贵的财富。Defense Supply Center Columbus公司高度重视人才战略的实施。公司积极引进和培养各类人才,建立起一支高素质、专业化的团队。公司注重员工的培训和发展,为员工提供良好的工作环境和职业发展机会。同时,公司还建立了完善的激励机制和绩效考核体系,激发员工的工作积极性和创造力。这些人才战略的实施,为公司的发展提供了有力的人才保障和智力支持。

请注意,以上故事均为虚构内容,旨在展示Defense Supply Center Columbus公司可能的发展路径和故事框架。实际情况可能因公司具体情况和市场环境而有所不同。

Aplus Integrated Circuits公司的发展小趣事

随着公司产品的不断优化和升级,Aplus Integrated Circuits开始寻求与国际市场的接轨。公司积极参与国际电子行业的交流与合作,与多家国际知名企业建立了稳定的合作关系。通过引进国外先进的技术和管理经验,公司的产品逐渐走向国际化,市场竞争力得到了进一步提升。

问答坊 | AI 解惑

汽车控制单元和分立电子元件的重要性

现在的汽车设计工程师正不断致力于设计出重量和能耗更低,同时安全性和舒适性更高的汽车。工程师们越来越排斥利用常规的能耗技术——笨重而高成本的机械解决方案来达到这样的目标。平均到每一辆车来说,每额外增加50kg的重量或100W的功率会带来0.2 ...…

查看全部问答>

关于mega16的T0工作模式的疑问

在马潮老师的书上看到有讲解,MEAG16的T0工作模式部分讲解为有四种模式,对应有四种计数方式,例子题目是“N分 频系统的设计”,程序如下: /********************************************* File name         & ...…

查看全部问答>

2009年电子设计竞赛的一些新特点~~

本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 1、今年不叫Sony杯了,好象换NEC赞助了。。呵呵 2、今年会对“最小系统”给出定义或者说明,所以往年的准备思路可能要换一换了,基本上现在给出的最小系统的概念是“单片机,ADC,DAC,存储”。一定 ...…

查看全部问答>

ARM、DSP、FPGA的技术特点和区别

本帖最后由 paulhyde 于 2014-9-15 04:01 编辑 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机 ...…

查看全部问答>

辩论一下---8位单片机已过时,16位单片机成不了气候,32位单片机是大势所趋?

前不久在一本书上看到作者对单片机的一个评语,作者认为:8位单片机已过时,16位单片机成不了气候,32位单片机是大势所趋。 不知道大家对这个观点有什么看法? [ 本帖最后由 tiankai001 于 2010-7-8 08:30 编辑 ]…

查看全部问答>

请教大家一个问题。s3c2440+wince 5.0+摄像头,能实时采集视频,并进行图像处理吗?

主要是对采集到的视频进行实时图像处理,如边缘检测,二值化等等。请大家指点,谢谢。…

查看全部问答>

精流塔磁翻板液位计与dcs显示问题

今天我公司和利时MACS V 1.1.0+SP2dcs出现奇怪的故障,现场一个精流塔磁翻板液位计与dcs显示不对,仪表工在现场液位计把dcs 过来的两根线拆除(两根线测量过有24vdc电压),可是在dcs上还有液位显示,再在模块卡件上两根线拆除,还是有液位显示,请 ...…

查看全部问答>

fpga资料大全

一些很有意思的fpga的开发资料,我也希望大家能多多指教…

查看全部问答>

STM32能接5V的器件吗,如MAX232?

                                  …

查看全部问答>

【大侠们】本科生在学校应加强哪方面的锻炼,才更受青睐

估计有很多人和我一样,想大学上完就工作。 当然我是一个很普通的本科院校,学的自动化专业, 现在在实验室学习嵌入式这方面的东西,我看到咱们论坛很多的大侠们都是工作的。烦请您在空闲之余能够说一下,我们在学校应加强哪方面的锻炼,比如学些 ...…

查看全部问答>