Systick时钟定时

发布者:Tianyun2021最新更新时间:2024-08-14 来源: cnblogs关键字:Systick  时钟定时  主函数 手机看文章 扫描二维码
随时随地手机看文章

主函数


 1 /* Note:Your choice is C IDE */

 2 #include 'stdio.h'

 3 #include 'led.h'

 4 void main()

 5 {

 6    SystemInit();//初始化系统,使得系统频率为72兆

 7    systick_init();//配置Systick,使得1ms产生中断

 8    led_gpio_init();

 9    while(1)

10    {

11    

12    GPIO_Setbits(GPIO,GPIO_Pin_15);

13    delay_ms(1000);//延时

14    GPIO_ResetBits(GPIO,GPIO_Pin_15);

15    delay_ms(1000);

16    }

17 }


time函数


 1 /* Note:Your choice is C IDE */

 2 #include 'stdio.h'

 3 /*

 4 *第一步:配置系统时钟 void SystemInit(void)

 5 *配置Systick  core_cm3.h

 6 *写SysTick中断处理函数

 7 *编写delay延迟函数

 8 */

 9 

10 _IO uint32_t TimeDelay;

11 

12 void systick_init(void)

13 {

14     //配置Systick重载值,系统时钟为72MHz

15     //设置72000,中断时间;72000*(1/72000000)=1ms

16     

17     if(SysTick_confing(72000)==1)

18     {

19         while(1);

20     }

21     /*

22     while(Systick_confing(72000)==1)

23     */

24 }

25 //中断函数

26 void TimingDelay_Decrement(void)

27 {

28     if(TimingDelay!=0x00)

29     {

30         TimingDelay--;    

31     }

32 }

33 

34 void sysTick_Handle()

35 {

36     

37 }

38 

39 //第四步

40 void delay_ms(_IO uint32_t nTime)

41 {

42     TimingDelay=ntime;//时钟滴答

43     while(TimingDelay!=0);

44 }


1 #ifndef _TIMER_H_

2 #define _TIMER_H_

3 #include 'stm32f10x.h'

6 extern _IO uint32_t TimingDelay;//生命外面的变量

7 void systick_init(void);

8 void delay_ms(_IO uint32_t nTime)

9 #endif


关键字:Systick  时钟定时  主函数 引用地址:Systick时钟定时

上一篇:STM32(HY-SRF05)超声波测距项目
下一篇:直接存储器存取(Direct Memory Access,DMA)详细讲解

推荐阅读最新更新时间:2024-11-10 10:47

STM32学习笔记(七)---SysTick
一、SysTick简介 SysTick属于CM4内核中的一个外设,内嵌在NVIC中,有关寄存器的定义和部分库函数都在core_cm4.h头文件中实现。 SysTick(系统滴答定时器)是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK。 当重装载初值寄存器的值减到0的时候,系统定时器就产生一次中断,一次循环往复。 系统定时器一般用于操作系统,用于产生时基,维持操作系统心跳。 二、SysTick功能框图 三、SysTick寄存器 SysTick控制和状态寄存器 SysTick重装载值寄存器 SysTick当前值寄存器 四、SYSTICK使用 1.中断方式使用 可以直接通过
[单片机]
STM32学习笔记(七)---<font color='red'>SysTick</font>
STM32的SysTick时钟源来自哪里?
STM32CubeMX中Cortex系统定时器(System Timer)选择1分频和8分频,为啥生成代码一样? 因为STM32CubeMX会启动SysTick作为延时(HAL_Delay)函数的时基,而SysTick作为Cortex内核的一部分,就会用到Cortex系统定时器。 那么,问题就来了SysTick时钟源来自哪里? 1、数据手册和STM32CubeMX时钟树 数据手册时钟树: STM32CubeMX时钟树: 你会发现:数据手册中的只有『/8』分频,而STM32CubeMX除了『/8』分频,还有『/1』分频。 2、SysTick时钟初始化代码 不管是使用标准外设库,还是HAL库,你初始化SysTick,都会调
[单片机]
STM32的<font color='red'>SysTick</font><font color='red'>时钟</font>源来自哪里?
51单片机实现在函数while循环中驱动数码管的动态扫描程序
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: LED-74HC595 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200604 ---- @ModifiedTime: 20200604
[单片机]
51单片机实现在<font color='red'>主</font><font color='red'>函数</font>while循环中驱动数码管的动态扫描程序
系统时钟定时器——PWM定时
时钟控制逻辑给整个芯片提供3种时钟:FCLK用于CPU核;HCLK用于AHB总线设备,比如CPU核、存储器控制器、中断控制器、DMA和USB主机模块等;PCLK用于APB总线上的设备,比如WATCHDOG、IIS、IIC、PWM、MMC、ADC、RTC等等。 S3C2440 CPU核的工作电压为1.2V时,主频可以达到300MHz;工作电压为1.3V时,主频可以达到400MHz。开发板为12MHz,需要通过时钟控制逻辑的PLL提高系统时钟。 S3C2440有两个PLL:MPLL和UPLL。UPLL专用于USB设备,MPLL用于设置FCLK、HCLK、PCLK。 图1 上
[单片机]
系统<font color='red'>时钟</font>和<font color='red'>定时</font>器——PWM<font color='red'>定时</font>器
STM32之时钟频率和定时时钟讲解
******************************** 本学习笔记基于STM32固件库V3.0 使用芯片型号:STM32F103 开发环境:MDK ******************************** 第一课 时钟频率 STM32F103内部8M的内部震荡,经过倍频后最高可以达到72M。目前TI的M3系列芯片最高频率可以达到80M。 在stm32固件库3.0中对时钟频率的选择进行了大大的简化,原先的一大堆操作都在后台进行。系统给出的函数为SystemInit()。但在调用前还需要进行一些宏定义的设置,具体的设置在system_stm32f10x.c文件中。 文件开头就有一个这样的定义: //#
[单片机]
STM32之<font color='red'>时钟</font>频率和<font color='red'>定时</font>器<font color='red'>时钟</font>讲解
STM32开发板入门教程(三) - SysTick 定时
本教程的主角是:SysTick 通常实现Delay(N)函数的方法为: for(i = 0; i = x; i ++); x --- 对应于 对应于N 毫秒的循环值 对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫 秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。 Cortex-M3的内核中包含一个SysTick时钟。SysTick 为一个
[单片机]
STM32F429之SysTick系统定时
因为 SysTick 属于内核外设,跟普通外设的中断优先级有些区别,并没有抢占优先级和子优先级的说法。滴答定时器优先级也是可以设置的同样受NVIC控制。 SysTick_Config()库函数主要配置了 SysTick 中的三个寄存器: LOAD、 VAL 和 CTRL。其中还调用了固件库函数 NVIC_SetPriority()来配置系统定时器的中断优先级,该库函数也在 core_m4.h 中定义 试试到底需要配置不 试试到底需要配置不//记得需要设置中断优先级 static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure;
[单片机]
srm32的Systick
(一) 背景介绍 在传统的嵌入式系统软件按中通常实现 Delay(N) 函数的方法为: for(i=0;i =x;i++); x--; 对应于N毫秒的循环值 对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实 现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时 N 毫秒的精确值。 针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用 Delay(N)。 (二) STM32 SysTick 介绍 Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计数器, SysTick 设定初值并使能后,每经过 1 个系统时
[单片机]
srm32的<font color='red'>Systick</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved