stm32定时器实现60秒定时秒表
来源:互联网 发布:linux命令在哪里输入 编辑:程序博客网 时间:2024/06/12 19:37
#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完成定时60svoid 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_tim TIM_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; } }
0 0
- stm32定时器实现60秒定时秒表
- 定时一秒和秒表
- JAVA秒表,可定时到秒!
- js定时循环实现秒表
- STM32定时器定时计算公式
- Linux下定时器的使用及实现秒以下精确定时与休眠
- Linux下定时器的使用及实现秒以下精确定时与休眠
- 定时器实现定时功能
- STM32-通用定时器基本定时功能
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32--通用定时器基本定时功能
- STM32通用定时器---基本定时学习
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32-通用定时器基本定时功能
- STM32-通用定时器基本定时功能
- stm32 基本定时器最简单定时配置
- Android带有边框的RelativeLayout、LinearLayout
- Fragment 与Activity
- android nagative drawer图标跟标题适配
- android 项目中出现红色感叹号的解决方法
- 【译】MySQL – The Error Log
- stm32定时器实现60秒定时秒表
- 移动互联网实时视频通讯之视频采集
- ssh:Network error:connection refused的排查
- mysqld设置密码
- Fragment调用Activity
- 安卓xml颜色设置
- stm32 u8 u16 u32
- Fragment 代码怎么写
- Service 广播 到Fragment