STM32F429--系统滴答定时器

发布者:DazzlingSmile最新更新时间:2021-12-22 来源: eefocus关键字:STM32F429  系统滴答定时器  主频 手机看文章 扫描二维码
随时随地手机看文章

系统滴答定时器:属于内核的定时器,用于控制整个系统的运行节拍,STM32F429是180MHZ的,STM32F103最高是72MHZ。此处主要是编写控制时钟进行延时的程序。


工作流程:利用systick定时器为递减计数器,设定初值并使能它后,它会每1个系统时钟周期计数器减,计数到 0时,SysTick计数器自动重装初值并继续计数,同时触发中断。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。


SystemInit() 这个函数可以让主频运行到180M,可以把它作为systick的时钟源。


计数方式:24bit向下递减的计数器


系统频率:180MHZ


实现功能:延时


主要寄存器:

SysTick->CTRL, --控制和状态寄存器


SysTick->LOAD, --重装载寄存器


SysTick->VAL, --当前值寄存器


SysTick->CALIB, --校准值寄存器


bsp_systick.c


#include "stm32f4xx.h"


void SysTick_Init(void);

void Delay_us(__IO u32 nTime);

static __IO u32 TimingDelay;


/*系统滴答定时器初始化 */

void SysTick_Init(void)

{

/* SystemFrequency / 1000    1ms中断一次

* SystemFrequency / 100000 10us中断一次

* SystemFrequency / 1000000 1us中断一次

*/

if (SysTick_Config(SystemCoreClock / 100000))

/* Capture error */ 

while (1);

}

}

//层级调用

// 180 000000 / 10 0000 =1800

//1800* 1/180 = 10us  

//10us*10 0000 =  1000ms = 1s,即传入10 0000就是延时1S时间。

/**

  * @brief   us延时程序,10us为一个单位

  * @param  

  * @arg nTime: Delay_us( 10 ) 则实现的延时为 10 * 10us = 100us

  * @retval  无

  */

void Delay_us(__IO u32 nTime)

TimingDelay = nTime;


while(TimingDelay != 0);

}




/**

* @brief  获取节拍程序 * 

*函数名称:TimingDelay_Decrement

 

*功能描述:中断里调用此函数,即没发生一次中断,此函数被调用,此函数里的变量

TimingDelay 相当于减法计数器

  * @attention  在 SysTick 中断函数 SysTick_Handler()调用

  */

void TimingDelay_Decrement(void)

{

if (TimingDelay != 0x00)

TimingDelay--;

}

}


在stm32f4xx_it.c系统中断函数调用TimingDelay_Decrement();


/* @brief  This function handles SysTick Handler.*/

void SysTick_Handler(void)

{

TimingDelay_Decrement();

}


main.c,其他灯的初始化函数课参考之前的文章:

在实验设计部分的bsp_led.h


#include "stm32f4xx.h"

#include "bsp_led.h"

#include "bsp_systick.h"


/* @brief  主函数*/

int main(void)

{

/* LED 端口初始化 */

LED_GPIO_Config();

/*系统滴答定时器初始化*/

SysTick_Init();

/* 控制LED灯 */

while (1)

{

LED_RED;

Delay_us(100000);//1s延时

LED_GREEN;

Delay_us(100000);

LED_BLUE;

Delay_us(100000);

}

}

关键字:STM32F429  系统滴答定时器  主频 引用地址:STM32F429--系统滴答定时器

上一篇:STM32看门狗--窗口看门狗
下一篇:STM32F429--中断应用概览

推荐阅读最新更新时间:2024-11-12 11:51

STM32F429 >> 18. 电源管理_实现低功耗(Code)
睡眠 进入睡眠的方式很简单: 只需要调用WFI 或WFE 命令,在睡眠模式中,内核停止,但是所有外设,包括M4 核心的外设均处于工作状态中。 唤醒睡眠的方式: 任一中断; 唤醒事件。 // Wait For Interrupt __WFI(); // Wait For Event __WFE(); 停止 进入停止的操作为: 调用 PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) 函数。 唤醒停止的操作为: 任一外部中断。 PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEn
[单片机]
STM32F429学习笔记(一)触屏工程Keil建立
由于原来的STM32F103ZET6的flash坏掉了,所以又买了一块STM32F429DISCOVERY,这块板子非常不错,基于Cortex-M4内核,自带一块2.4寸TFT触屏,主频为180M,且内置了ST-Link下载器,使用非常的方便。 近期参加校赛,用它的触屏写了个上位机,当时我是在实验室的电脑和我的平板电脑之间相互拷贝工程,由于ST官方的工程都是公用库文件,所以独立性不强,想要拷贝就得拷贝整个目录,为了解决这个问题,我仔细学习了官方工程的组成与调用,并成功的将所有文件分离出来,建立了一个独立的工程文件夹,以后再拷贝时,只需要将这单个工程拷贝出来,即可方便的移植,其间有不少小插曲,下面就对具体步骤进行详述。
[单片机]
<font color='red'>STM32F429</font>学习笔记(一)触屏工程Keil建立
第14章 STM32F429的电源,复位和时钟系统
14.1 初学者重要提示 电源管理部分涉及到的各种低功耗方式会在后面章节中为大家讲解,当前阶段仅需了解低功耗属于电源管理部分即可。 14.2 电源 电源是系统稳定运行的根本,主要分为以下几个知识点,电源供电、供电监控、电源管理和低功耗。当前阶段主要了解电源供电和硬件上电时序。 14.2.1 电源供电 学习STM32F429的电源供电,往往被一堆电源标识Vdd,Vdda,Vcap,Vss等搞迷糊,这些标识整明白了,电源供电部分也就理解了,首先看下面的框图: 这些常用标识的解释如下: 对于电源供电部分了解了这些知识点就够用。 14.2.2 电源去耦电容的选择 每个电源对 (VDD/VSS, VDDA/VSSA ..
[单片机]
第14章 <font color='red'>STM32F429</font>的电源,复位和时钟<font color='red'>系统</font>
STM32F429 自制开发板
上次讲到自制了F407开发板,用下来都不错,但是有个遗憾就是407没有LTDC,最近一直在研究液晶屏,着了迷一样,研究了一圈,觉得F429是最好的选择,网上的开发板价格都较贵,关键是好多都没有引出LTDC接口,决定自制一块开发板自带LTDC+SDRAM。 原理图 F429的原理图不像407,网上的资源不多,基本上和F407的相类似,LTDC和SDRAM的引脚就要当心了,一定要按照CUBEMAX分配的引脚来对应,Cubemax的分配引脚有时候会变动,要格外注意!SDRAM 选的是W9825G6KH, 256Mbit, 32MByte PCB 布线 这个对于双面板来说确实有点难,死了不少脑细胞。原则是SDRAM和f429之间的
[单片机]
<font color='red'>STM32F429</font> 自制开发板
第5章 STM32F429下载和调试方法(MDK5)
5.1 初学者重要提示 如果使用JLINK调试下载STM32F429,可以使用JLINK V8,V9和V10。 如果使用STLINK调试下载STM32F429,推荐使用最新的电脑端驱动和对应的固件,详情见第2章的2.6小节。 MDK曾发布的STM32F1,F407,F429和F7的所有调试方法的设置细节及其注意事项,同样适用于STM32H7:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14896 。 MDK5调试过程中容易崩溃的问题,请看本章5.4小节,比较重要。 JLINK无法下载解决思路以及常见问题整理,适用于其它LINK:http://www.armb
[单片机]
第5章 <font color='red'>STM32F429</font>下载和调试方法(MDK5)
msp430介绍_msp430晶振的选择
MSP430系列芯片一般外搭两颗晶振:一颗主频晶振,通常在4~16Mhz中选择;另外一颗时钟晶振,即32.768Khz晶振,早期选用直插封装的,现在大部分采用贴片封装的产品,其一便于贴装,其二追求产品的稳定性和品质的可靠性等。 主频晶振的选择 通常MSP430芯片的主频晶振一般选择4Mhz的整数倍,即4Mhz、8Mhz、16Mhz、32Mhz等。早期电路设计的时候一般选择成本较低的49S封装产品,现阶段越来越倾向于稳定性更好、体积更小、便于贴装的贴片3225封装产品,上海唐辉电子代理的日本KDS大真空公司推出的DSX321G和DSX320GDSX320GE产品。 1、工业级、消费类产品用DSX321G 8Mhz,如下图:
[单片机]
msp430介绍_msp430晶振的选择
STM32F429--STM32的PWM占空比产生与测量
一、PWM波形的产生; 使用定时器2 (TIM2)PA5端口输出。 通过配置 TIM_TimeBaseStructure.TIM_Period= 1000 - 1; TIM_TimeBaseStructure.TIM_Prescaler= 9000 - 1; TIM_OCInitStructure.TIM_Pulse= 300 ; 三个参数,TIM_Prescaler控制计数频率,此处9000即计数频率为90M/9000 = 10Khz,即计数一次的时间为0.1ms,TIM_Period控制PWM波周期时间,此处1000即PWM波的周期为1000*0.1ms = 100ms;TIM_Pulse控制有效电平时
[单片机]
STM32F429--STM32的PWM占空比产生与测量
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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