历史上的今天
返回首页

历史上的今天

今天是:2024年08月31日(星期六)

2018年08月31日 | STM32学习之:定时器 软件计时

2018-08-31 来源:eefocus

#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_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;

            }    

     

}


推荐阅读

史海拾趣

Holmes Co Inc公司的发展小趣事

面对日益增长的全球市场需求,Holmes Electronics决定实施全球化战略。他们首先在亚洲建立了生产基地,利用当地的成本优势和供应链资源,大幅提高生产效率并降低成本。随后,公司又在欧洲和美国设立了研发中心和销售网络,以更好地服务当地客户并捕捉市场机会。这一全球化战略不仅使Holmes Electronics的产品遍布全球,还增强了公司的市场响应能力和品牌影响力。

Hitano Enterprise Corp公司的发展小趣事

Holmes Electronics Inc. 起初是一家小型电子元件制造商,专注于生产基础电阻器和电容器。然而,随着电子行业的快速发展,公司创始人意识到技术创新的重要性。他们投入大量资源进行研发,成功开发出一种新型的高精度温度传感器,这种传感器能够在极端环境下保持高精度,迅速被智能手机、医疗设备和工业自动化系统采用。这一技术创新不仅为公司赢得了市场份额,还奠定了Holmes Electronics在电子行业的技术领先地位。

Deutronic Elektronik GmbH公司的发展小趣事

随着技术的不断进步和市场的扩大,Deutronic Elektronik GmbH开始寻求技术突破和业务拓展。公司加大了研发投入,推出了一系列具有创新性的电源供应器、电子模块和测试检查系统。这些产品不仅满足了客户的多样化需求,还为公司带来了显著的经济效益。同时,公司也积极拓展海外市场,逐步建立了全球销售和服务网络。

Chesivale Electronics公司的发展小趣事

Chesivale Electronics公司深知人才是企业发展的核心动力。因此,公司一直注重人才队伍建设。公司通过校园招聘、社会招聘等多种渠道吸引优秀人才加入,同时建立完善的培训机制和晋升机制,激发员工的积极性和创造力。这些措施使得公司的人才队伍不断壮大,为公司的发展提供了有力的人才保障。

Allied Controls Incorporated公司的发展小趣事

随着公司规模的扩大和业务的拓展,Chesivale Electronics公司开始积极寻求与其他企业的合作机会。公司高层通过参加行业展览、举办商务洽谈会等方式,与多家知名企业建立了紧密的合作伙伴关系。这些合作不仅为公司带来了更多的业务机会和资源支持,也提升了公司在行业内的知名度和影响力。通过与合作伙伴的共同努力,Chesivale Electronics公司在市场上取得了显著的竞争优势。

CCS[Custom Computer Services]公司的发展小趣事

随着数字化时代的到来,CCS公司积极拥抱数字化转型。公司投入大量资源进行信息化建设,引入了先进的信息管理系统和生产设备,实现了生产过程的自动化和智能化。数字化转型不仅提高了公司的生产效率和管理水平,还为客户提供了更加便捷和高效的服务体验。展望未来,CCS公司将继续加大在数字化转型方面的投入力度,不断探索新的业务模式和技术创新,为公司的可持续发展注入新的动力。

这些故事虽然基于虚构,但它们的逻辑和结构都是基于电子行业发展的一般规律和常识。希望这些故事能够满足您的需求,并为您了解电子行业中的公司发展提供一定的参考。

问答坊 | AI 解惑

智能楼宇防盗报警系统的设计与解决方案(二)

该系统除巡更点外分成8个分区,每个分区包含了可以统一管理的楼层,用所属主机的液晶键盘进行布防撤防和消警,所有操作信息和报警信息都实时在警卫中心管理软件中反应出来,并可以自动显示出报警区域的电子地图。     在总线方 ...…

查看全部问答>

求个 .NET Compact Framework 2.0 for CE5.0 的下载地址

求个 .NET Compact Framework 2.0 for CE5.0 的下载地址就是能放到 CE 系统里。然后能安装的那个。我只下到WM5版的。。下不到CE版的 …

查看全部问答>

请问:如何在一个机柜中集成多个单板计算机?

问题很简单,就是想在一个机柜中插入很多的单板计算机,机柜为所有单板机统一提供供电、网络交换、散热等服务,这样按照单板机的尺寸计算,一个机柜中可以插入几十几百甚至上千个单板机,构成一个计算机群。 可是关于单板计算机、嵌入计算等方面, ...…

查看全部问答>

请教如何去掉BSP中不需要的驱动?

BSP 中有些驱动用不上的,可不知道该怎么去掉,在百度找了一篇删除不用驱动的方法,可讲得太深奥了,看不懂啊,希望高手能给我解释解释,详细一点点,感激不尽。 原文: WinCE中如何删除一个驱动(原创小经验) 在使用wince的过程中往往需要去掉 ...…

查看全部问答>

SHLoadDIBitmap执行速度慢的问题

在EVC中将位图读取至内存DC,用SHLoadDIBitmap函数,HBITMAP bitmap =SHLoadDIBitmap(  szBitmap ); 发现调用速度特别慢,要好几秒才执行完,请问各位有没有速度快一点的方法?…

查看全部问答>

(要求加精)大家来发表一下自己学习VxWork的经验

我是Embedded System的新手,有不到两年的Linux的经验。闲来无事,想充实一下自己。想来嵌入式有几个比较流行的版本,譬如Symbian,VxWork,WinCE等。于是来到我们这个论坛,但是发现,精品贴里四壁皆空,觉得很奇怪。点击率如此之高的论坛,怎么会 ...…

查看全部问答>

对bootloader 的startup.s里面一些汇编语句的疑惑

08-23 对startup.s里面一些汇编语句的疑惑    [折叠] TEXTAREA表示什么,我在伪指令里面怎么找不到这条指令? 30 ;------------------------------------------------------------------------------ ;   Initialize me ...…

查看全部问答>

请问NS12864J在VDHL里面是怎么驱动

刚学VHDL了,可是硬件上NS12864J液晶显示器不会驱动,哪位大哥能帮帮我的…

查看全部问答>