历史上的今天
返回首页

历史上的今天

今天是:2024年12月22日(星期日)

2021年12月22日 | STM32F429--系统滴答定时器

2021-12-22 来源:eefocus

系统滴答定时器:属于内核的定时器,用于控制整个系统的运行节拍,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);

}

}

推荐阅读

史海拾趣

捷嘉电子(Chequers Electronic)公司的发展小趣事

随着公司规模的扩大,捷嘉电子开始着手整合产业链资源,以提升整体竞争力。公司通过与上游供应商建立长期稳定的合作关系,确保了原材料的质量和稳定供应;同时,通过加强与下游客户的沟通与协作,实现了产品的定制化服务和快速响应市场需求。这些举措不仅提高了捷嘉电子的运营效率,也进一步巩固了其在市场上的地位。

CHINFA公司的发展小趣事

在环保日益受到重视的今天,CHINFA公司积极响应国家号召,践行绿色环保理念。公司致力于研发和生产节能、环保的电子产品,通过技术创新和材料替代,减少了对环境的污染和破坏。同时,公司还加强了对生产废弃物的处理和回收利用,实现了资源的循环利用和可持续发展。

Fairchild Imaging公司的发展小趣事

Fairchild Imaging公司的历史可以追溯到1950年成立的Fairchild Camera & Instrument Company。这家公司自创立以来,就凭借其创新的技术和优质的产品,在许多重大的政府、国防项目中发挥了关键作用。随着公司业务的不断拓展,Fairchild Camera & Instrument Company逐渐将业务重心转向半导体和集成电路领域,并在此领域取得了显著成就。最终,Fairchild Imaging从Fairchild Camera & Instrument Company中独立出来,专注于高端成像技术的研发和应用。

Advanced Illumination Inc公司的发展小趣事

随着技术的不断进步,Ai公司在LED照明光源领域取得了重大突破。公司成功研发出了一系列高效、稳定、可靠的LED光源产品,这些产品不仅性能卓越,而且设计新颖,满足了市场对于高质量照明光源的迫切需求。同时,公司还不断创新,推出了多款具有自主知识产权的新型LED光源,进一步巩固了公司在行业内的领先地位。

Codeco Corporation Of Vermont公司的发展小趣事

在追求商业成功的同时,Codeco也积极履行企业社会责任。他们注重环保和可持续发展,在生产过程中采用环保材料和技术,减少对环境的影响。此外,Codeco还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也赢得了员工和消费者的尊重与认可。


您可以根据这个框架,结合您对电子行业和Codeco Corporation Of Vermont的了解,撰写具体的故事内容。请注意,这些故事应基于事实或合理的推测,避免涉及未经证实的信息或夸大其词的描述。

Greenlee公司的发展小趣事

GREEGOO公司深知品牌建设对于企业发展的重要性。因此,公司投入大量资源用于品牌宣传和推广,通过赞助行业活动、举办产品发布会、开展公益活动等方式,不断提升品牌知名度和美誉度。同时,GREEGOO还注重产品质量的提升和售后服务的完善,以优质的产品和服务赢得消费者的信任和忠诚。这些努力使得GREEGOO在电子行业中树立了良好的品牌形象,品牌价值不断提升。

问答坊 | AI 解惑

全国大学生电子设计竞赛历年试题

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 全国大学生电子设计竞赛历年试题  …

查看全部问答>

自己组装生产摄像机优势在哪?

本人从事安防行业5年,一路走来,一直在做监控摄像机这一块,发现自己组装生产摄像机,有以下几大优势,供大家参考: 第一:摄像机本身组装很简单,技术含量不高,不如自己动手,还学会了组装,与摄像机内部结构。 第二:自己组装生产摄像机,价格 ...…

查看全部问答>

3D报纸引领阅读潮流 成本与内容成制约发展瓶颈

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 自2009年年底起,3D在国内成为了“时尚”的代名词,继3D电影《阿凡达》、《爱丽丝梦游仙境》在中国市场赚得盆满钵满,3D似乎也成为了报刊企业的又一掘金点。   2010年4月16日,湖北《十堰晚 ...…

查看全部问答>

关于开发CDMA的通信模块!

先祝各位达人元旦快乐! 我老板现在想开发CDMA的通信模块,就是网上很多卖的那种,可以通过串口或其他通用接口进行CDMA无线通信,但我查了很长时间仍然没有头绪……望各位达人指点一二: 用于开发CDMA模块一般都有什么芯片?我看网上大部分都是高 ...…

查看全部问答>

请教关于Powerpc文件系统的问题

Powerpc现在编译的文件系统是jff2格式,用串口线先传倒powerpc的RAM里,再复制进flash,但是现在文件系统似乎限制了大小,如果传3M左右就能正常启动,如果大于4M就不能正常启动,系统会不停重启。但是如果系统能正常启动后,用FTP上传文件,则没有 ...…

查看全部问答>

workbench!!

之前用的是vxworks+Tornado开发方式,一切比较顺利!! 最近单位买了最新版的vxworks,开发环境是workbench,刚接触,本打算先做启动软盘尝试启动vxworks,可发现每次编译后,目标机出现v1.6++++++++++++++++++然后又重起,尝试了各种方法,都是这样,请各位 ...…

查看全部问答>

小弟碰到个很奇怪的问题

S3C44B0X那块板子,能在线调试并且LCD显示正常,但是将程序烧录进去后,却发现LCD没有显示了。这是怎么回事呢?有哪位大虾遇到过同样的问题吗? 做LED实验却不管在线调试还是将程序烧录进去,都能得到正确的结果。…

查看全部问答>

【芯币兑换】AVR ATmega16学习板标准原理图

下面是最终版原理图,请大家参考 …

查看全部问答>

有湖北的吗?今年怎么还不出设备清单??

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 都12号了,还不出设备清单,往年都有的,武大咋搞的!!!  …

查看全部问答>