历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2019年01月04日 | stm32 定时器 通用定时器

2019-01-04 来源:eefocus

STM32F10xxx


2个基本定时器(TIM6、TIM7) 

4个通用定时器(TIM2、 TIM3、 TIM4和TIM5) 

2个高级定时器(TIM1、TIM8)


每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作


TIMx主要功能


16位向上、向下、向上/向下自动装载计数器 

16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意 

数值 


4个独立通道: 


─ 输入捕获 

─ 输出比较 

─ PWM生成(边缘或中间对齐模式) 

─ 单脉冲模式输出 


使用外部信号控制定时器和定时器互连的同步电路 


如下事件发生时产生中断/DMA: 


─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 

─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 

─ 输入捕获 

─ 输出比较 


支持针对定位的增量(正交)编码器和霍尔传感器电路 


触发输入作为外部时钟或者按周期的电流管理


TIMx配置步骤


1.使能定时器时钟 

2.初始化定时器参数,预分频器的值、自动重装载的值等设定 

3.设置定时器中断类型 

4.初始化NVIC外设,设置定时器中断优先级 

5.开启定时器 

6.编写定时器处理函数


举例


void TIM4_IRQHandler()

{

    if(TIM_GetITStatus(TIM4, TIM_IT_Update) == 1)

    {

        delay_ms(10);


        led1 = ~led1;

    }


    TIM_ClearITPendingBit(TIM4, TIM_IT_Update);


typedef struct

{

    uint16_t TIM_Prescaler; //预分频器的值

    uint16_t TIM_CounterMode; //计数模式

    uint16_t TIM_Period; //自动重装载的值 

    uint16_t TIM_ClockDivision; //时钟分频

    uint8_t TIM_RepetitionCounter; //重复计数器

} TIM_TimeBaseInitTypeDef;   


void TIM4_init(u16 per, u16 pre)

{

    TIM_TimeBaseInitTypeDef tim = {0};


    NVIC_InitTypeDef nvic = 

    {

        TIM4_IRQn,

        2,

        2,

        ENABLE

    };


    tim.TIM_Prescaler = pre;

    tim.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数,常用

    tim.TIM_Period = per;

    tim.TIM_ClockDivision = TIM_CKD_DIV1; //时钟1分频


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能定时器时钟


    TIM_TimeBaseInit(TIM4, &tim); //初始化定时器参数


    TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); //设置定时器中断类型,发生哪种事件


    NVIC_Init(&nvic); //初始化NVIC


    TIM_ClearFlag(TIM4, TIM_IT_Update); //清中断


    TIM_Cmd(TIM4, ENABLE); //开启定时器

}


定时器定时时间计算


Tout = ((Period)*(Prescaler+1))/Tclk; //mb == us

500000 = (1000 * 36000)/72  //500000um


推荐阅读

史海拾趣

Green Solution Technology Co Ltd公司的发展小趣事

对于听音耳机电路,网友可能的问题涉及多个方面,以下是一些常见问题及相应的回答:

一、技术性问题

  1. 耳机电路的工作原理是什么?
    • 回答:耳机电路主要通过音频信号放大器将音频设备(如手机、电脑等)输出的微弱电信号放大,然后驱动耳机的驱动单元(扬声器)产生声音。这个过程中,耳机电路还负责音频信号的传输和转换,确保音质清晰、音量适中。
  2. 为什么耳机电路会出现杂音或失真?
    • 回答:耳机电路出现杂音或失真的原因可能有很多,包括电路接触不良、线路老化、驱动单元故障、音频信号源问题等。此外,电磁干扰、设备不兼容等也可能导致音质问题。解决这类问题通常需要检查电路连接、更换损坏部件或调整设备设置。
  3. 如何判断耳机电路是否损坏?
    • 回答:判断耳机电路是否损坏可以通过以下方法:首先,检查耳机是否能正常发声,如果无声或声音异常,可能是电路问题;其次,使用万用表等工具检测电路中的电阻、电压等参数是否正常;最后,可以尝试将耳机连接到其他音频设备上进行测试,以排除设备问题。

二、维护与保养

  1. 如何保养耳机电路以延长使用寿命?
    • 回答:保养耳机电路的关键在于避免潮湿、防止碰撞和摔落,并定期清洁。使用时应注意避免拉扯耳机线,以免损坏内部电路。此外,在不使用耳机时,应将其存放在干燥、通风的地方,避免阳光直射和高温环境。定期使用软布轻轻擦拭耳机表面和插头,可以去除污垢和灰尘,保持电路清洁。
  2. 耳机电路进水了怎么办?
    • 回答:如果耳机电路进水,应立即停止使用并切断电源。然后,使用干燥的软布或纸巾轻轻擦拭耳机表面和插头上的水分。如果条件允许,可以将耳机放在通风良好的地方自然晾干,避免使用吹风机等热源直接吹干,以免损坏电路。如果进水情况严重或无法自行处理,建议送往专业维修中心进行检修。

三、升级与改造

  1. 如何升级耳机电路以提升音质?
    • 回答:升级耳机电路以提升音质需要一定的专业知识和技术。一般来说,可以通过更换更高品质的音频信号放大器、使用更优质的线路材料、优化电路设计等方式来实现。然而,这些操作可能比较复杂且存在风险,如果不熟悉相关技术,建议寻求专业人员的帮助。
  2. 是否可以自己动手改造耳机电路?
    • 回答:虽然理论上可以自己动手改造耳机电路,但这需要具备较高的电子技术和动手能力。如果操作不当,可能会导致电路损坏甚至耳机报废。因此,在没有足够经验和专业知识的情况下,不建议自己尝试改造耳机电路。

综上所述,针对听音耳机电路的问题,网友可能关心的方面包括技术性问题、维护与保养以及升级与改造等。在解决这些问题时,应根据具体情况采取相应的措施和方法。

Digilent公司的发展小趣事

DIALIGHT在全球范围内不断拓展业务,目前在美国、英国、丹麦、德国、马来西亚、新加坡、澳大利亚、墨西哥和巴西等地设有业务。公司的LED产品广泛应用于各种工业场所,包括石油和天然气、矿业、化工、制造业等。通过提供定制化的照明解决方案,DIALIGHT赢得了众多客户的信赖和好评。

Allen Avionics Inc公司的发展小趣事

DIALIGHT在工业LED照明领域取得了显著成就。公司专注于为工业应用设计集成系统,以减少安装和维护的复杂性,并确保产品在恶劣条件下持续稳定运行。此外,DIALIGHT的LED产品旨在提供优越的运行性能、可靠性和耐久性,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。

Epitex Inc公司的发展小趣事

随着技术的不断进步,Epitex不断加大对研发的投入。XXXX年,他们成功研发出了一种具有更高导热性能的电子材料,这种材料在高性能计算机和服务器等高端电子产品中得到了广泛应用。这一技术突破不仅提升了Epitex的市场竞争力,也为其带来了可观的经济效益。

在技术突破的基础上,Epitex开始积极拓展国际市场。他们通过与全球知名的电子制造商建立合作关系,将产品推向了更广阔的舞台。同时,Epitex还积极参与国际技术交流和展览,提升了公司在国际市场的知名度。

Fanstel公司的发展小趣事

Fanstel公司一直将产品质量视为企业的生命线。公司建立了严格的质量管理体系,从原材料采购到产品生产、检测等各个环节都进行严格控制。此外,Fanstel还不断引进先进的生产设备和检测技术,确保产品质量的稳定性和可靠性。这种对品质管理的坚持赢得了客户的信任和好评,也为公司赢得了更多的市场份额。

Bellin Dynamic Systems公司的发展小趣事

在面临激烈的市场竞争时,Bellin Dynamic Systems选择与行业内的其他领军企业展开战略合作。通过与这些企业的合作,Bellin Dynamic Systems不仅获得了更多的技术资源和市场渠道,还共同推动了整个行业的发展。这种合作共赢的模式使得Bellin Dynamic Systems在竞争中保持了领先地位。

问答坊 | AI 解惑

关于题C的问题

本帖最后由 paulhyde 于 2014-9-15 09:30 编辑 AD603产生的自激现象严重,当用两级放大时候,第二级放大严重失真,这个是什么原因啊?我们现在在AD603前面加了OPA658做前级跟随器,希望可以减小自激  …

查看全部问答>

发个我用的元件库

这是我平常所用到的元件库…

查看全部问答>

wince 的cab 安装包问题(vs2005)

想做一个cab安装包,安装今日插件,按照网上的说明写了个安装程序setupdll.dll, 但是在模拟器上(pocket pc se 2003 Emulator)安装发现setupdll没有被调用(在函数Install_Exit中加了MessageBox,没有弹出,注册表也没写) cab安装包使用vs2005做的 ...…

查看全部问答>

GPRS连接问题

我用OPEN AT 已经建立完成了GPRS激活部分,但是为什么数据流中什么都收不到,在超级终端里使用ATD*99***1#,可以收到PPP包,如何使用OPEN AT ADL也能收到这些PPP包?请指教一二!我在软件里已经加入了AT命令,但是没有任何反应,到底是什么地方出了 ...…

查看全部问答>

用KernelIoControl获取逻辑中断号失败

我想使用EINTT4作按键中断输入.定义如下: UINT32  g_EINTIrq = IRQ_EINT4; UINT32  g_EINTSysIntr = SYSINTR_UNDEFINED; PUBLIC DWORD CPK_Init(DWORD dwContext) {             &n ...…

查看全部问答>

EVC4.0中窗体最小化问题

想要实现一个最小化功能 使用ShowWindow函数没反应~ 请问各位还有什么其他办法不?…

查看全部问答>

dshow CreateMediaType FreeMediaType 无法解析的外部符号

我在wince6.0上做dshow开发,已经包含的头文件和库 #include #include #include #include #include                                     &n ...…

查看全部问答>

CE6及BSP安装求救!!!!紧急啊

我之前安装开发环境的时候,发现PB中Device Driver中的SD选项没有,后来把Updates全装上了,就出现了SD选项。 前几天系统崩溃了,重新装上所有东西后发现就是SD选项没有,各位有没有遇到过这种情况啊????急 …

查看全部问答>

请教中断问题

我在做关于MPC8260的工作.目前,我想为DMA加入中断处理程序.MPC8260的参考手册中 说,IDMA1的中断号是6,我使用如下函数: intConnect(INUM_TO_IVEC(6),dma_isr,0); 连接中断处理程序与中断源.但是一旦DMA结束,BC中断到来之后,整个EP8260板子就死掉 ...…

查看全部问答>

MCS-51单片机定时器问题

MCS-51单片机中,采用12Mhz时钟,定时器T0采用模式1(16位计数器),请问在下面程序中,p1.0的输出频率 ? MOV TMOD,#01H SETB TR0 LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP…

查看全部问答>