历史上的今天
返回首页

历史上的今天

今天是:2024年10月05日(星期六)

正在发生

2018年10月05日 | 【STM32电机方波】记录3——TIM1时基初始化配置

2018-10-05 来源:eefocus

定时器分类 :
STM32F1x 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。

基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。

通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。

高级定时器 TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。 

【STM32电机方波】记录3——TIM1时基初始化配置



高级定时器TIM1的库函数:

【STM32电机方波】记录3——TIM1时基初始化配置


定时器TIM1时基结构体缺省值:

{

TIM1_Period =TIM1_Period_Reset_Mask;// 定时器周期,设定自动重载寄存器TIMx_ARR 的值

    TIM1_Prescaler = TIM1_Prescaler_Reset_Mask;//预分频器,设定TIMx_PSC 寄存器的值,

    TIM1_CKD =TIM1_CKD_DIV1;               // 时钟分频 

    TIM1_CounterMode = TIM1_CounterMode_Up; //计数模式(高级定时器有5种模式)

    TIM1_RepetitionCounter = TIM1_RepetitionCounter_Reset_Mask;//重复计数器 

}


TIM1 时基初始化及中断子程序配置:

void TIM1_TimeBaseInit(u16 arr,u16 psc)

{

 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //TIM1时基结构体

 NVIC_InitTypeDef NVIC_InitStructure;

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //①时钟 TIM1 使能

 

 TIM_TimeBaseStructure.TIM_Period = arr; //设置自动重装载寄存器ARR周期的值

 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟频率除数的预分频值

 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割

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

 TIM_TimeBaseStructure.TIM_RepetitionCounter=0; //计数频率为72MHz

 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //②初始化 TIM1

 TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE ); //③允许更新中断  //中断优先级 NVIC 设置

 

 NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; //TIM1 中断

 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级 1 级

 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级 3 级

 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能

 NVIC_Init(&NVIC_InitStructure); //④初始化 NVIC 寄存器


 TIM_Cmd(TIM1, ENABLE); //⑤使能 TIM1

}

void TIM1_IRQHandler(void) //TIM1 中断

{

    if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) //检查 TIM1 更新中断发生与否

   {

      TIM_ClearFlag(TIM1, TIM_IT_Update ); //清除 TIM1 更新中断标志

        ………………………………………………………………

    }

}

发生中断时间=(TIM_Prescaler+1)* (TIM_Period+1)/FLK


基本定时器的核心是时基,通用计时器和高级定时器也有。 对于高级定时器TIM1 来说:

1、时钟源 

定时器时钟TIMxCLK,即内部时钟CK_INT,经APB2预分频器后分频提供,如果APB2 预分频系数等于 1,则频率不变,否则频率乘以 2,库函数中 APB2 预分频的系数是 2,即 PCLK2=36M,所以定时器时钟 TIMxCLK=36*2=72M 。 

2、计数器时钟 

定时器时钟经过 PSC 预分频器之后,即 CK_CNT,用来驱动计数器计数。PSC 是一个16 位的预分频器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。 

具体计算方式为:CK_CNT=TIMxCLK/(PSC+1)。 

3.计数器 

计数器 CNT 是一个 16 位的计数器,只能往上计数,最大计数值为 65535。当计数达到自动重装载寄存器的时候产生更新事件,并清零从头开始计数。 

4、自动重装载寄存器 

自动重装载寄存器 ARR 是一个 16 位的寄存器,这里面装着计数器能计数的最大数值。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断。 

5. 定时时间的计算 

定时器的定时时间等于计数器的中断周期乘以中断的次数。计数器在 CK_CNT 的驱动下,计一个数的时间则是 CK_CLK 的倒数,等于:1/(TIMxCLK/(PSC+1)),产生一次中断的时间则等于:1/(CK_CLK * ARR)。如果在中断服务程序里面设置一个变量 time,用来记录中断的次数,那么就可以计算出我们需要的定时时间等于: 1/CK_CLK *(ARR+1)*time。 



BLCD电机的起动:

按下功能键,令高级定时器TIM1 输出 PWM 方波、进入TIM1中断,通过两相通电法测定初始状态的电机。具体的操作是给任意两相通电,并控制电机电流不致过大,启动电机做一次换向,通电一段时间后,转子就会转到与该通电状态对应的预知位置,完成转子的定位

PWM输出:

PWM的配置在其结构体 TIM_Period(周期设定)、TIM_Prescaler(分频)、TIM_OCMode(输出模式)、TIM_OutputNState(互补输出状态)、TIM_Pulse(捕获比较器的值,即设定PWM的占空比)等的配置。另外对于BLDC来说,PWM波形使用TIM1产生,1、2、3三个通道产生3路PWM驱动六个MOSFET,4通道用于ADC采样,而ADC1扫描3个通道获取反电动势,其扫描结果由DMA传输。



推荐阅读

史海拾趣

ATP [ATP Electronics]公司的发展小趣事

随着全球环保意识的日益增强,ATP积极响应环保号召,致力于绿色产品的研发和生产。公司所有产品均符合欧洲RoHS无铅绿色标准和中国无铅环保标准,体现了ATP对环保事业的坚定承诺。同时,ATP还通过优化生产工艺和采用环保材料,降低了产品对环境的影响,为公司的可持续发展注入了新的动力。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

Anderson Power Products公司的发展小趣事

Anderson Power Products(APP)是一家专注于电源连接器和配件的制造商,以下是该公司发展的相关故事:

  1. 公司成立与初期阶段:Anderson Power Products成立于1936年,总部位于美国华盛顿州斯特林。最初,公司主要从事电源连接器的制造和销售。创始人是William M. Anderson和Harold J. McKenzie,他们致力于提供高质量、可靠的连接器产品,以满足不断增长的市场需求。

  2. 技术创新与产品发展:随着市场的不断变化和技术的进步,Anderson Power Products不断进行技术创新和产品开发。公司推出了一系列新型的电源连接器和配件产品,包括Powerpole®连接器、SB®连接器等,这些产品具有高功率密度、高可靠性和易用性的特点,得到了广大客户的青睐。

  3. 客户合作与市场拓展:Anderson Power Products与全球各个行业的客户建立了长期稳定的合作关系。公司的客户群涵盖了汽车、航空航天、工业、能源等多个领域。通过与客户的紧密合作,Anderson Power Products不断拓展市场份额,提升品牌知名度,成为电源连接器领域的领先供应商之一。

  4. 全球布局与生产基地:为了更好地服务全球客户,Anderson Power Products在全球建立了多个生产基地和销售办事处。除了在美国的总部外,公司还在欧洲、亚洲等地区设立了生产工厂和销售办事处,以满足不同地区客户的需求。这些生产基地拥有先进的设备和技术,能够为客户提供高质量的连接器产品。

  5. 持续创新与未来展望:作为一家专注于电源连接器的公司,Anderson Power Products将继续致力于技术创新和产品发展。公司将不断推出适应市场需求的新产品,提升生产效率和产品质量,以满足客户不断变化的需求。同时,Anderson Power Products也将继续关注行业的发展趋势和技术变革,不断调整战略,保持在行业内的竞争优势。

GSI Technology公司的发展小趣事

进入21世纪后,GSI Technology继续加大研发投入,不仅巩固了其在SRAM领域的领先地位,还成功扩展了产品线,包括同步突发SRAM、无总线周转SRAM等。同时,公司还推出了SigmaRAM、SigmaQuad、SigmaQuad II等系列产品,这些产品以其卓越的性能、高可靠性和低功耗特性,赢得了市场的广泛认可。此外,GSI还致力于提供超长产品支持生命周期和完整的售前售后服务,进一步增强了客户粘性。

A/D Electronics Inc公司的发展小趣事

在追求经济效益的同时,A/D Electronics Inc也积极履行社会责任,致力于可持续发展。公司注重环保和节能,采用环保材料和节能技术,减少生产过程中的环境污染和资源消耗。此外,公司还积极参与公益事业,为社会做出贡献。通过这些举措,A/D Electronics Inc不仅赢得了社会的广泛认可,也为企业的长远发展奠定了坚实基础。

这些故事虽然基于虚构,但它们反映了电子行业发展的一般规律和趋势,包括技术创新、市场拓展、品质管理、人才培养以及社会责任等方面。这些元素对于任何一家在电子行业中发展起来的公司来说,都是不可或缺的。

Cembre SPA公司的发展小趣事

Cembre SPA一直秉持品质至上的原则,不断追求产品质量的提升。公司建立了严格的质量管理体系,从原材料采购到生产制造,再到产品出厂,每一个环节都严格把控。同时,公司还注重持续改进,通过引入先进的生产设备和技术,不断提高生产效率和产品质量。

问答坊 | AI 解惑

搅浑税控这潭

中国的税控机市场究竟有多大?日前在北京召开的税控机产业链论坛上,中国信息产业商会税控信息化设备分会秘书长郑志光爆料,在未来的5年内,国内税控收款机的市场规模在100亿元左右。这与此前业界和研究机构盛传的2000亿元的市场份额相去甚远。一下 ...…

查看全部问答>

低成本1A线性锂电池充电器芯片方案(CN3056)

概述: CN3056是可以对单节锂离子或者锂-聚合物可充电电池进行恒流/恒压充电的充电器电路.该器件内部包括功率晶体管,应用时不需要外部的电流 检测电阻和阻流二极管.CN3056只需要极少的外围元器件,并且符合USB总线技术规范,非常适用于便携式应 ...…

查看全部问答>

文件不是有效windows CE安装文件

我是用C#进行开发的,直接部署到设备上运行没有问题,但是生成cab安装文件,在设备上安装失败,提示“文件不是有效windows CE安装文件”。系统是wince 5.0…

查看全部问答>

介绍下关于windows mobile6 api的书籍

介绍下关于windows mobile6 api的书籍,谢谢…

查看全部问答>

WINDOWS MOBILE下导航软件(具备源代码)。

WINDOWS MOBILE下导航软件(具备源代码)。 开发平台:EVC4.0 使用平台:WINDOWS MOBILE5,6 电子地图格式:MM4 地图转换工具:MAPINFO格式转到MM4(具备源代码)。 该软件是为台湾使用编写的,在大陆还没有版本问题。 现带全套代码,寻求合作 ...…

查看全部问答>

uclinux扫盲贴

uclinux表示micro-control linux.即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被 ...…

查看全部问答>

两个VHDL写的51单片机内核

VHDL语言进行MCS-51兼容单片机ip核开发,给各位坛友见识一下我收藏的资料, [ 本帖最后由 awarenessxie 于 2012-9-3 21:32 编辑 ]…

查看全部问答>

贴一颗“纽扣”,装一个App,东西就不怕丢了

CES 大会上又有好玩意儿了。它是 StickNFind 公司推出的一个纽扣形状的追踪器,可以贴到任何物体上,通过蓝牙和手机上的一个 App 通信(iOS 和 Android 版均有),能给丢三落四的同学省去不少苦恼。这个 App 和这颗纽扣的通信有一个要求,就是在 ...…

查看全部问答>

我发现美国大片里好多创意很不错

大家发现没有,美国大片里的好多科幻的玩意儿,都会在几年内实现,比如那个普罗米修斯里的测绘山洞的飞行仪器,其实我感觉就可以用四轴飞行器,加高精度360度激光,应该就能实现。 还有猜测梦境的东西,不是那个小日本已经能实现一部分了吗?好神 ...…

查看全部问答>

我来评论,太阳能光伏发电解决方案

对ADI的产品还算是比较了解的,之前用过他的DDS类的芯片,这个感觉不错,另外就是用过AD,DA,以及一个很快的比较器ADCMP600系列的,刚才太阳能伏光里面提到的有AD7606那个多通道的数模转换也很给力,ADI的前景很大,真的,就是芯片贵了点,另外指标 ...…

查看全部问答>