简述嵌入式程序中的定时器

本文简要介绍了基于STM32芯片的定时器在嵌入式程序中的应用,主要讨论了系统定时器SysTick和时钟定时Timer。文中通过C语言示例说明了定时器的工作原理,强调了定时器中断函数如TIM2_IRQHandler的重要性,并提到定时器在状态机和控制逻辑中的关键作用。此外,还提到了计算量延时的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


概念介绍

  本篇简单说说基于STM32芯片的定时器,嵌入式程序常用C语言开发,因此本文的一些示例也会用C语言做说明,常用的定时器有两种,系统定时器SysTick和时钟定时Timer,当然定时器是有优先级的,不过偶尔也有计算量作为延时操作。
  定时器顾名思义就是定时执行一个操作,在芯片中使用晶振作为计时单位,通过对晶振的计数来实现计时,当时间达到定时器设定的时长后,会跳入对应的函数执行对应的操作。常用的时间单位是毫秒,即一毫秒执行一次。
  嵌入式程序中的中断习惯以_IRQHandler结尾,比如外部中断函数常命名为EXTI2_IRQHandler,时钟的中断函数默认命名为TIM(N)_IRQHandler,下面示例为Timer2的中断函数(TIM2_IRQHandler)。一个Timer中执行的操作不要超过Timer本身的时长,否则Timer还没执行完就开始执行第二遍,将永远无法完成。
  定时器是嵌入式中应用非常广泛的一个工具,所有模块都需要考虑好时序问题,经常跟状态机一起使用来实现系统的逻辑控制。也有些简单的场景,比如常见的呼吸灯、跑马灯都可以使用定时器完成。

定时器示例

void Timer_cfg(void)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    TIM_DeInit(TIM2);
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_TimeBaseStructure.TIM_Period = timerPeriod;
    TIM_TimeBaseStructure.TIM_Prescaler = 36000 - 1;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
    
    TIM_ClearFlag(TIM2, TIM_FLAG_Update);
    TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);
    TIM_Cmd(TIM2,ENABLE);
}
void (*pfClockHandler)(void);
void TIM2_IRQHandler(void)
{    
    if(TIM_GetITStatus(TIM2, TIM_IT_Update) == RESET) return;
    TIM_ClearITPendingBit(TIM2, TIM_FLAG_Update);    
    if(pfClockHandler != NULL)
    {
        (*pfClockHandler)();
    }
}

在这里插入图片描述


计算量延时示例

static void DelayCount(unsigned long timesCount) 
{
	while ( --timesCount!= 0 );
}
### 回答1: 嵌入式系统是一种专门设计用于特定用途的计算机系统,通常用于控制或监视硬件或设备。嵌入式系统通常由硬件和软件两部分组成,硬件平台是其中的一个重要组成部分。 嵌入式系统的硬件平台通常包括以下组件: 1.中央处理器(CPU):通常采用低功耗、高性能的处理器,如ARM、MIPS或PowerPC等,以满足嵌入式系统对低功耗和高性能的要求。 2.存储器:包括闪存、RAM、EEPROM等,用于存储程序代码、数据以及配置信息等。 3.输入/输出(I/O)接口:用于与外部设备进行通信,包括串口、并口、USB、以太网等。 4.时钟和定时器:用于提供时序控制和时间管理功能。 5.电源管理:用于管理系统的电源和电量消耗。 6.传感器和执行器:用于检测环境和执行某些任务,如温度传感器、湿度传感器、电机等。 7.外围设备:如显示屏、键盘、麦克风、扬声器等,用于与用户交互。 这些组件通常都被集成到一块主板上,形成一个完整的嵌入式系统硬件平台。在不同的应用场景下,硬件平台的配置和组成可能会有所不同。 ### 回答2: 嵌入式系统的硬件平台是指嵌入式系统所使用的硬件组件和相关设计。它的主要目标是为嵌入式系统的运行提供支持,并实现各种功能和性能需求。 嵌入式系统的硬件平台一般包括以下几个方面的组件: 1.中央处理器(CPU):作为嵌入式系统的核心部件,CPU负责执行指令,进行计算和控制。根据应用需求,可以选择不同类型和规模的CPU,例如ARM、MIPS等。 2.内存:包括随机存储器(RAM)和只读存储器(ROM)。RAM用于存储运行时数据和程序指令,而ROM用于存储固化的程序代码和数据。 3.外设接口:用于与外界设备进行通信和交互,包括通用输入输出端口(GPIO)、串行通信接口(如UART、SPI、I2C)、USB接口、以太网接口等。 4.时钟和定时器:提供系统时钟信号和定时功能,确保各个组件的同步和系统的稳定运行。 5.电源管理:负责为嵌入式系统提供电源供应和管理,包括电源适配器、电源电池等组件。 6.外部存储器:用于存储更大容量的数据和程序,例如闪存、SD卡等。 7.显示和输入设备:嵌入式系统通常需要显示和接收用户输入,因此包括显示屏、触摸屏、键盘、鼠标等。 8.传感器:用于感知和采集环境或物理量的传感器,例如温度传感器、湿度传感器、加速度传感器等。 9.通信接口:用于与其他设备或系统进行通信,例如无线通信模块(如蓝牙、Wi-Fi、蜂窝网络)、有线通信接口(如以太网、RS232)等。 嵌入式系统的硬件平台设计需要根据具体的应用需求和约束进行选型和优化,以实现系统的稳定性、可靠性、性能和功耗要求。同时,硬件平台也需要与软件层相协同工作,以实现嵌入式系统的功能和保障系统的安全性和可维护性。 ### 回答3: 嵌入式系统的硬件平台是指嵌入式系统所用的硬件组成和实现方式。嵌入式系统的硬件平台可以包括处理器、内存、外设、总线以及其他与系统功能相关的硬件模块。 首先,处理器是嵌入式系统的核心,用于执行程序和处理数据。常见的处理器类型有微控制器、微处理器、DSP等,根据系统的性能和功耗需求选择合适的处理器。 其次,内存是嵌入式系统存储数据和程序的地方。主要包括ROM和RAM两种类型。ROM用于存储程序代码和常量数据,RAM用于存储临时数据和变量。根据系统的存储需求选择合适的ROM和RAM大小。 外设是与嵌入式系统进行输入和输出交互的硬件设备。常见的外设包括键盘、显示屏、触摸屏、声音设备、通信接口等。根据应用需求选择适当的外设。 总线是连接嵌入式系统中各个硬件模块的数据传输通道。常见的总线包括数据总线、地址总线和控制总线。总线的设计要考虑数据传输速度、带宽和稳定性。 此外,还有其他与系统功能相关的硬件模块,如时钟电路用于提供时钟信号、电源管理模块用于管理系统的能源消耗、触摸屏控制器用于处理触摸事件等。 在选择硬件平台时,需要根据嵌入式系统的应用场景、性能需求、功耗要求、成本预算和开发资源等因素综合考虑。硬件平台的选择直接影响着嵌入式系统的功能和性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

具身小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值