STC15 定时器

芯片手册:

        TOCLK0:是否允许P3.5/T1定时器0时钟输出引脚

定时器T0代码:

(实现定时LED闪烁)

LED :定时L1以0.5s循环闪烁,L8以5s循环闪烁。

定时器1:同上

定时器2:

定时器2固定位16位自动重装载不可更改

定时器2不可设置优先级

定时器T2代码:

### 15定时器中断实现原理与编程 #### ### 1. 定时器中断基础概念 定时器是一种常见的外设模块,用于测量时间间隔或生成周期性事件。对于15定时器(假设为通用定时器),其工作原理与其他定时器类似,主要依赖于计数器、预分频器(PSC)以及自动重装载寄存器(ARR)[^2]。 - **计数器**:负责按照设定的频率递增直到达到最大值或者指定的目标值。 - **预分频器 (PSC)**:用来降低输入到计数器的时钟信号频率,从而延长每次计数值更新所需的时间。 - **自动重载寄存器 (ARR)**:定义了计数器的最大值,在计数到达此值之后会触发相应的动作,比如产生一个中断请求。 当计数器达到由ARR设置的上限时发生溢出事件,此时如果启用了中断功能,则会产生一次中断请求通知CPU处理特定的任务逻辑。 #### ### 2. STM32中的15定时器配置流程 以下是基于STM32微控制器平台下针对TIM15定时器进行初始化并启用其中断的具体操作步骤: ##### ###### (1)使能定时器时钟源 为了能够访问和控制目标定时器资源之前,必须先开启对应外设的工作电源供应路径上的开关——即调用`RCC_APBxPeriphClockCmd()`函数激活该外设所连接总线上的时钟供给线路。 ```c // 假定 TIM15 连接至 APB1 总线上 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM15, ENABLE); ``` ##### ###### (2)初始化定时器参数 利用结构体变量存储各项初始配置数据并通过API接口传递给驱动层完成实际硬件寄存器写入过程。这里主要包括两个重要参数: - `TIM_Period`: 对应上述提到过的ARR字段; - `TIM_Prescaler`: 即PSC字段,决定内部时基单元之间的比例关系。 ```c TIM_TimeBaseInitTypeDef.TIM_Period = 499; // 设置ARR值 TIM_TimeBaseInitTypeDef.TIM_Prescaler = 7199; // 配置PSC值 TIM_TimeBaseInit(TIM15, &TIM_TimeBaseInitTypeDef); ``` ##### ###### (3)允许中断并向量表注册回调地址 通过调用专用的服务例程来打开某个具体类型的异常捕捉机制;与此同时还需要告知系统当前应该跳转执行哪一段代码片段作为响应措施的一部分内容。 ```c NVIC_InitTypeDef.NVIC_IRQChannel = TIM15_IRQn; NVIC_InitTypeDef.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitTypeDef.NVIC_IRQChannelSubPriority = 1; NVIC_InitTypeDef.NVIC_IRQChannelCmd = ENABLE; TIM_ITConfig(TIM15,TIM_IT_Update,ENABLE); NVIC_Init(&NVIC_InitStruct); ``` ##### ###### (4)启动定时器运行状态 最后一步就是正式让这个已经完全准备好的设备开始运作起来啦!只需要简单的一句命令即可达成目的。 ```c TIM_Cmd(TIM15, ENABLE); ``` ##### ###### (5)编写自定义ISR函数 每当满足一定条件下就会进入这段特殊区域里面去完成预定计划内的各种事务活动咯~ 下面给出了一种可能的形式供参考借鉴使用哦~ ```c void TIM15_IRQHandler(void){ if(TIM_GetITStatus(TIM15,TIM_IT_Update)!=RESET){ GPIO_ToggleBits(GPIOA,GPIO_Pin_8); /* 切换 LED */ TIM_ClearITPendingBit(TIM15,TIM_IT_Update);/* 清除标志位*/ } } ``` 以上便是关于如何在STM32系列芯片上运用第十五路通用型计时装置配合中断技术达成预期效果的整体思路概述说明文档啦! ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值