历史上的今天
返回首页

历史上的今天

今天是:2025年03月07日(星期五)

正在发生

2018年03月07日 | 采用STM32的PWM输入功能计算输入PWM的周期

2018-03-07 来源:eefocus

    1、时钟部分,TIMER2的时钟频率,我是初始化为36M.

    RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHB时钟=系统时钟/2

    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // 倍频系数为9 PLLCLK="8"*9=72

    2、TIMER初始化

    TIM_DeInit(TIM2);

    TIM_TimeBaseStructure.TIM_Period = 65535;

    TIM_TimeBaseStructure.TIM_Prescaler = 18;

    TIM_TimeBaseStructure.TIM_CLOCkDivision = 0;

    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;

    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;

    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

    TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV4;

    TIM_ICInitStructure.TIM_ICFiLTEr = 0x0;

    TIM_PWMIConfig(TIM2, &TIM_ICInitStructure);

    TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1);

    TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //复位模式为从模式

    TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //使能主从模式

    TIM_Cmd(TIM2, ENABLE); //使能TIM2计数器

    TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE); //使能CC2中断请求

    3、TIMER中断处理

    void TIM2_IRQHandler(void)

    {

    /* Clear TIM2 Capture compare interrupt pending bit */

    TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);

    /* Get the Input Capture value */

    IC2_Value = TIM_GetCapture2(TIM2);

    }

    注意事项:

    不知道为什么,STM32的TIMER时钟经过分频率后,时钟的精度误差会随分频值变大而变大。在不分频的情况下,我检测1KHz的PWM输入信号,误差为0.5us。在18分频的情况下,误差已经不能看了。测量100Hz,根据捕获值计算出来却是105Hz。

    确实如STM32朋友所讲,在分频处我理解错了,分频值=TIM_TimeBaseStructure.TIM_Prescaler +1,所以如果要分18分频,只要将TIM_Prescaler=17即可。经这样修改后测量误差在万分之5以内。


推荐阅读

史海拾趣

ELANTEC (Renesas )公司的发展小趣事

Renesas Electronics的前身可以追溯到1958年,当时日立制作所成立了半导体部门。随着技术的不断进步和市场的扩大,该部门逐渐发展壮大,成为日立公司内的一个重要业务部门。进入20世纪90年代,随着半导体市场的竞争加剧,日立公司决定将半导体业务独立出来,以便更加灵活地应对市场变化。1999年,日立半导体部门正式更名为ELANTEC,开始了独立发展的道路。

ELDECO公司的发展小趣事

在电子记录仪(ELD)市场刚刚兴起时,ELDECO公司凭借其在嵌入式系统领域的深厚积累,迅速推出了首款高性能、易集成的ELD产品。这款产品不仅满足了当时法规对车辆监控的要求,还通过创新的数据分析功能,帮助运输企业提高了运营效率。随着市场需求的不断增长,ELDECO公司继续加大研发投入,不断推出新产品和解决方案,逐渐在ELD市场确立了领先地位。

Deutsch公司的发展小趣事

随着全球环保意识的不断提高,电子行业的环保要求也日益严格。Deutsch公司积极响应环保号召,将环保和可持续发展作为公司的重要战略之一。公司投入大量资源研发环保型产品和技术,减少生产过程中的能源消耗和污染排放。同时,公司还积极参与环保公益活动,推动整个行业的绿色发展。这些努力不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

Advanced Interconnections Corp公司的发展小趣事

为了降低经营风险并寻求新的增长点,AIC公司开始实施多元化发展战略。除了继续深耕连接器领域外,公司还积极拓展至线缆、接口等其他相关领域。通过不断的技术研发和市场拓展,AIC公司在这些领域也取得了不俗的成绩,实现了业务的多元化发展。

德旭电子(DEXU)公司的发展小趣事

在德旭电子的发展历程中,供应链管理和成本控制一直是公司关注的重点。为了降低生产成本和提高产品质量,公司不断优化供应链管理流程和技术手段。

德旭电子与多家优质供应商建立了长期稳定的合作关系,并通过引入先进的供应链管理软件和系统实现了供应链的数字化和信息化管理。这些措施有效提高了供应链的响应速度和灵活性,降低了库存和运营成本。

在成本控制方面,德旭电子注重精细化管理和持续改进。公司通过优化生产流程、提高生产效率、降低能耗和原材料成本等措施不断降低生产成本。同时,公司还建立了完善的成本管理体系和考核机制确保成本控制工作的有效实施。

DS-IMP公司的发展小趣事

DS-IMP公司的前身是一家美国公司,在转移到中国大陆后,面临了技术转移和本土化的挑战。公司迅速组建了一支由资深工程师和技术专家组成的团队,他们与美国的原团队紧密合作,成功地将核心技术从美国转移到宁波的工厂。在本土化过程中,公司不仅保留了原技术的精髓,还根据中国大陆的市场需求和资源特点,对部分技术和产品进行了优化和升级。这一过程不仅提升了公司的技术实力,也为公司在中国市场的快速发展奠定了坚实基础。

问答坊 | AI 解惑

用于车身控制模块的单片机和本地互连网络的作用

 随着应用的不断扩展,今天和未来的单片机普及和车辆网络正在继续。单片机是车辆内各种电子控制模块的“大脑”,而网络则是“系统互连”。本地互连网络(LIN)是业界第一个提出车内Class A开放多路复用协议标准。它定义了一个支持车辆内 ...…

查看全部问答>

马达概要

一、马达种类  依电源相数可以分成单相马达和三相马达。 (1)单相马达  ·单相电源为一般家庭用型的常用电源,以一相所组成。  ·电源本身无法运转马达,为了启动马达需要把电容器和辅助线圈连结在一起做启动。 (2)三相马达  ·三相马达 ...…

查看全部问答>

求助一个信号量的问题

  程序中有两个任务,分别是收和发,收的优先级高。在接收到特写的数据后,用msgQSend()转向发任务进行相关处理。但是在发任务中又需要收任务提供一些支持,比如发了一定的数据包后需要对方回应,而这个回应是收任务处理的,收到回应后发任务才能 ...…

查看全部问答>

寻求AT440芯片的DataSheet

老大要我对比下AT440和S3C2440方案的异同,要我找AT440的DataSheet,不知道那位有,能否帮忙?…

查看全部问答>

2.4G常用通信标准有哪些?自己可以自由制定协议的芯片有哪些?

2.4G常用通信标准有哪些?自己可以自由制定协议的芯片有哪些?…

查看全部问答>

Qsys集成dsp builder高级库设计--图示

呵呵,如果哪位见识过DSP Builder高级库的朋友想必会它的功能折服!大概提供了几十个demos涵盖很多领域,几乎每个例子都可以自动生成一个用户IP下面是利用DSP Builder自动生成NCO设计的IP…

查看全部问答>

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十八章 PS2鼠标实验

第三十八章  PS2鼠标实验 PS/2作为电脑的标准输入接口,用于鼠标键盘等设备。PS/2只需要一个简单的接口(2个IO口),就可以外扩鼠标、键盘等,是单片机理想的输入外扩方式。ALIENTEK战舰STM32开发板也自带了一个PS/2接口,可以用来驱动标 ...…

查看全部问答>

求助wintech仿真器问题

手里有一块28335的板子和一个前辈留下的仿真器,各个地方都找遍了就是找不到驱动程序,求各位大侠出手相助。 我的系统是WIN7 32位,已装好CCS3.3。用过的大侠能把驱动发我邮箱么..mashaokang1111@163.com。谢谢啊! [ 本帖最后由 mashaokang 于 20 ...…

查看全部问答>