历史上的今天
返回首页

历史上的今天

今天是:2025年01月13日(星期一)

正在发生

2020年01月13日 | STM32-systick系统定时器

2020-01-13 来源:eefocus

systick系统定时器


系统定时器存在内核中,是24位的定时器,只能向下递减,嵌套在NVIC中

counter 在时钟的驱动下 在reload的初值开始向下递减计时到0,产生中断置位标志然后又从reload值开始重新递减计数,循环定时时间计算


t=reload*(1/clk)


clk=72M时,t=72*(1/72m)=1us


clk=72M时,t=72000*(1/72m)=1ms


clk=72M时,t=72000000*(1/72m)=1s


1s=1000MS =1000 000US=1000 000 000NS


sysTick属于内核中的外设,他的中断优先级和外设的中断优先级相比,哪个高?


sysTick中断优先级配置的是scb->shprx寄存器


而外设的中断配置的是NVIC->iprx,有优先级分组和抢占优先级和子优先级的说法。


中断优先级在内核外设同样适用。


systick的使能函数:


static __INLINE uint32_t SysTick_Config(uint32_t ticks)

//判断tick的值是否大于2^24,如果大于,不符合规则

  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);  

//初始化reload寄存器的值                                                                    

  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      

//配置中断优先级,配置为15,默认为最低优先级  

NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  

//初始化counter的值为0

  SysTick->VAL   = 0;                                         

//配置systick的时钟为72M

//使能中断

//使能systick

  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk | 

                   SysTick_CTRL_TICKINT_Msk   | 

                   SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */

  return (0);                                                  /* Function successful */

}

编写微秒延时函数


void SysTick_Delay_us(uint32_t us)

{

uint32_t i;

SysTick_Config(72);

for(i=0;i {

//当计数器的值时间到了后,CTRL寄存器位16会置1

while(!((SysTick->CTRL)&(1<<16)));

}

SysTick->CTRL &=~SysTick_CTRL_ENABLE_Msk;

}

利用中断来进行延时


void SysTick_Init(void)

{

if(SysTick_Config(SystemCoreClock/100000))

while(1);

}

void Delay_ms(__IO u32 nTime)

{

uint32_t TimingDelay;

TimingDelay = nTime;

while(TimingDelay!=0)

TimingDelay--;

}

推荐阅读

史海拾趣

FIDELIX公司的发展小趣事

2015年,中国半导体企业东芯半导体有限公司看中了FIDELIX在存储芯片领域的优势,决定对其进行收购。经过多轮谈判和协商,东芯半导体成功收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这次收购不仅加强了东芯半导体在存储芯片领域的技术实力,也为FIDELIX提供了更广阔的市场和发展空间。

EDO Corp公司的发展小趣事

进入1950年代,Eclipse Magnetics迎来了一次重要的创新。公司决定将磁铁涂上红色,这一独特的红色磁铁迅速在市场上获得了认可。同时,公司还设计了与红色磁铁相配的马蹄形标志,这一标志后来成为Eclipse Magnetics的国际通用标记。随着品牌的国际化,Eclipse Magnetics的产品开始进入全球市场。

HB公司的发展小趣事

服务:Hartmann Codier GmbH深知客户是企业发展的基石。因此,公司始终将客户服务放在首位,致力于为客户提供优质的产品和服务。公司建立了完善的客户服务体系,包括售前咨询、售中支持和售后服务等环节。

成果:通过不断优化客户服务流程和提高服务质量,Hartmann Codier GmbH赢得了广大客户的信赖和支持。公司与客户之间建立了长期稳定的合作关系,共同推动了电子行业的繁荣发展。同时,公司也根据客户的反馈和需求,不断改进产品和服务,以满足市场的不断变化和升级。

常州能动(ENDRIVE)公司的发展小趣事

随着产品的不断成熟,常州能动开始积极拓展市场。公司参加各类电子展会,与国际知名企业建立合作关系,不断提升品牌影响力。同时,公司还加大了对市场营销的投入,通过广告、公关等手段提升品牌知名度。这些努力使得常州能动逐渐在电子行业中崭露头角,成为了一家备受瞩目的企业。

Holtek(合泰)公司的发展小趣事

人才是企业发展的重要保障。常州能动深知这一点,因此在发展过程中始终注重人才引进与培养。公司不仅积极引进高端技术人才,还建立了完善的培训体系,为员工提供多样化的培训机会,帮助他们不断提升技能水平。这些措施使得公司的人才队伍不断壮大,为公司的持续发展提供了有力保障。

ETEQ Microsystems Inc公司的发展小趣事

面对电子行业日新月异的发展变化,ETEQ Microsystems Inc始终保持敏锐的市场洞察力。公司不断调整战略方向,积极应对行业变革带来的挑战。未来,ETEQ Microsystems Inc将继续加大研发投入,推动技术创新和产品升级,致力于成为电子行业的领军企业。

问答坊 | AI 解惑

步进疑问

#include #include \"math.h\" unsigned char z,z1;//取步序 unsigned int lj1=0;//a电机累加次数 unsigned int lj2=0; //b电机累加次数 unsigned char pda,pdb;//判断正反转 unsigned char x1=0,x2=0;  //x坐标 unsigned char y ...…

查看全部问答>

HOLTEK 微电脑密码锁

时代在进步,一切的事物也跟著e化,记得以前当学生时,上学时搭公车都要准备一大堆零钱,现在都改成公车储值卡,每天坐火车都要买火车票,现在火车也推出磁卡,捷运更是一开始就直接采用磁卡,没有票就无法进站,也不会有人逃票,现在连公司上班打卡也都改成 ...…

查看全部问答>

分数给完了,事后一定加分.LCD能显示Logo图片, 之后什么也不显示了, 我估计可能是FrameBuffer配置错了, 如何解决.

掌微的A3 CPU, wince5.0, EBoot能正常运行,NK也已运行(Logo图片以文件的形式包含在NK.Bin中), LCD能显示Logo图片, 之后什么也不显示了, 我估计可能是FrameBuffer配置错了. 请问如何检查下 WinCE 代码里面对LCD控制器有没有错误的配置? 如何检 ...…

查看全部问答>

求助,WINCE5.0下,如何获得网卡的状态信息

比如网卡是否加载,是否与网络连接,信好强度,IP地址等 我知道读注册表可以获取一些 那么除了读注册表外,还有别的方法吗…

查看全部问答>

evc中类似CIPAddressCtrl

evc中 是否有 类似vc中CIPAddressCtrl的控件? 没有的话,你们是怎么显示修改IP的?…

查看全部问答>

接口技术模拟试题

简答题 1.什么是接口?外设为什么一定要通过接口电路与主机相连? 2.计算机系统中,为了节省I/O端口地址,常为I/O接口芯片中的多个寄存器分配一个端口地址,为了区分同一端口地址对应的多个寄存器,接口芯片常采用的三种方法是什么? 3. 80x86 ...…

查看全部问答>

单次转换ADC通道数据偏离了一位?

在进行ADC转换时,进行四个通道的转换,发现读取数据时第一次采样读数变了第二位,第二个数据变成第三位,第三位数据变成第四位,第四位数据变成了第一位。那么奇怪的?不知哪里出现了问题。我想的是需要的时候才进行ADC转换。 int main(voi ...…

查看全部问答>

嵌入式底层软件开发思想

我刚毕业没多久,希望未来是从事平台、底层软件、BSP等方面工作。 1.嵌入式软件如何分层?    芯片厂商做哪部分?平台开发做哪部分?应用开发又做哪部分?   怎么样区分才能做到通用性? 2.如何做好API? 3.开发前期,考虑换以 ...…

查看全部问答>

测量放大器

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 测量放大器的资料,精心收集  …

查看全部问答>

求STM32F103VBT6输入模拟量用八位数码管显示的程序

求STM32F103VBT6输入模拟量用八位数码管显示的程序…

查看全部问答>