STM32学习之:定时器 软件计时
stm32定时器实现60秒定时秒表
#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "lcd.h" #include "usart.h" #include "timer.h" #include "beep.h"extern u32 sec;int main(void){ delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600); //串口初始化为9600 LED_Init(); LCD_Init(); BEEP_Init(); TIM3_Int_Init(9999,7199);//10Khz的计数频率, 延时1s == 1000 000us while(1) { LCD_ShowString(30,70,200,16,16,"Zhaocundang:14160310317"); LCD_ShowString(30,162,200,2,16,"Second Clock:"); LCD_ShowNum(150,162,sec,2,16);} }
#include "timer.h"
#include "led.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "beep.h"
#include "delay.h"
//
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK战舰STM32开发板
//定时器 驱动代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2012/9/3
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved
//
volatile u32 sec=0;//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!// TIM3完成定时60s
void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能//定时器TIM3初始化TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断//中断优先级NVIC设置NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
TIM_Cmd(TIM3, ENABLE); //使能TIMx
}//定时器3中断服务程序
void TIM3_IRQHandler() //TIM3中断
{ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志 LED1=!LED1; }sec++;if(sec==60){
//赵存档 QQ463431476 http://www.cnblogs.com/xiaobo-Linux/LED0=0;delay_ms(100);LED0=1;delay_ms(100);LED0=0;delay_ms(100);LED0=1;delay_ms(100);BEEP=1;delay_ms(200);BEEP=0;sec=0;} }
STM32学习之:定时器 软件计时相关推荐
- STM32学习总结——定时器
文章目录 一.STM32定时器是什么? 二.STM32定时器的功能 1.计时&&中断 2. PWM产生 3.输入捕获 三.总结 一.STM32定时器是什么? 定时器顾名思义就是可以用来 ...
- STM32学习——高级定时器
高级定时器简介 1.输入捕获模式,可用来测频率或脉宽(原理:捕获到信号的跳变沿的时候,把计数器CNT的值锁存到捕获寄存器CCR中,把前后两次捕获到的CCR寄存器中的值相减,就可以算出脉宽或者频率.如果 ...
- STM32学习笔记 定时器HAL库函数
stm32f1xx_hal_tim.c 定时器基础部分相关函数 /* Time Base functions ********************************************* ...
- c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS
最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...
- STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)
本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...
- STM32学习心得十八:通用定时器基本原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容: 1) 三种定时器分类及区别: 2) 通用定时器特点: 3) 通用定时器工作过程: 4) 实验一:定时器中断实验补充知识及部代码解读: 6) 实验二:定时器PWM输 ...
- STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...
- STM32学习笔记(10)——高级定时器TIM
前排提示:本笔记参考了野火PPT的大部分内容.本人初学定时器,倍感冗杂,有错烦请指出,谢谢! STM32学习笔记(10)--高级定时器TIM 一.时钟源 1. 内部时钟源 2. 外部时钟模式 1 (1 ...
- 【STM32】标准库与HAL库对照学习教程十三--软件IIC控制AT24C02
[STM32]标准库与HAL库对照学习教程十三--软件IIC控制AT24C02 一.前言 二.准备工作 三.AT24C02(EEPROM)介绍 1.AT24C02简介 2.引脚功能 3.设备地址 四. ...
最新文章
- 下载 NCBI sra 文件
- Robot Framework自动化测试(六)--- robotremoteserver使用
- 不得不推荐的一本好书《观止》
- 【python】简单记录
- 1001.害死人不偿命的(3n+1)猜想
- DBLINK 无统计信息导致SQL变慢
- docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]
- ***从菜鸟到大虾教程下载
- react学习(25)---注意接口引入位置
- 苹果WWDC前瞻之iOS 13更新最受关注;微软发布基于区块链的去中心化身份识别系统;小米成立了新集团质量办公室……...
- 工作流实战_07_flowable 流程定义查看流程图和xml
- java面向对象测试题二_JAVA面向对象-测试题
- [2017.3.29]中国生育腚理不互质
- win7 C盘空间越来越小 Windows文件夹变大的问题
- python 实现 BCH 纠错码的方法
- OKHttp原理讲解之责任链模式及扩展
- Device Tree(五)移植DM9000,并挂载NFS
- 安装用友U8的常见错误
- IAR(For STM32) 安装,配置,工程创建,下载,调试
- Tea Data Analysis System 茶饮数据分析系统
热门文章
- remote HEAD refers to nonexistent ref, unable to checkout
- 手把手教你3D打印机怎么使用,所需要的软件支持
- python爬取饿了么数据(2)
- 鹏翼轿跑和智能SUV,小鹏汽车质量如何?旗下车型都信得过
- codeforces Gym 100286J 	Javanese Cryptoanalysis (二染色)
- JAX-WS创建和JavaAPI发送和处理SOAP消息实例
- 网络工程师 B站希赛视频第9章因特网与网络互联技术学习笔记
- 编译springboot提示Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1
- 主机维护服务器,主机服务器维护
- 雷达模拟器 HPx-310