历史上的今天
返回首页

历史上的今天

今天是:2025年03月01日(星期六)

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

2020-03-01 来源: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--;

}

推荐阅读

史海拾趣

国兴(GOODSKY)公司的发展小趣事

对于带有1HZ低通滤波器的电桥放大器电路,网友可能的问题及回答如下:

问题一:1HZ低通滤波器在电桥放大器电路中的作用是什么?

回答:1HZ低通滤波器在电桥放大器电路中的主要作用是滤除高于1Hz频率的信号,只允许低于或等于1Hz的信号通过。这对于需要从复杂信号中提取低频分量或去除高频噪声的场合尤为重要。在电桥放大器中,由于传感器输出信号可能包含多种频率成分,通过1HZ低通滤波器可以有效减少高频噪声的干扰,提高测量信号的信噪比和精度。

问题二:如何设计带有1HZ低通滤波器的电桥放大器电路?

回答:设计带有1HZ低通滤波器的电桥放大器电路时,需要综合考虑电桥电路的设计、放大器的选择以及滤波器的设计。以下是大致的设计步骤:

  1. 电桥电路设计:首先,根据被测物理量的特性选择合适的电阻传感器,并设计相应的电桥电路。电桥电路应能准确地将非电量转换为电压或电流信号,并具有一定的抗干扰能力。

  2. 放大器选择:选择合适的运算放大器(运放)作为放大元件。运放应具有低噪声、高精度和适当的增益带宽积,以满足信号放大的需求。

  3. 滤波器设计:设计1HZ低通滤波器时,可以选择一阶或更高阶的有源滤波器。一阶有源低通滤波器由电阻、电容和运放组成,具有简单的电路结构和较好的滤波效果。设计时,需要根据所需的截止频率(本例为1HZ)选择合适的电阻和电容值。

  4. 电路整合与调试:将电桥电路、放大器和滤波器整合在一起,形成完整的电桥放大器电路。然后,对电路进行调试,确保电路工作正常,并满足预期的滤波和放大效果。

问题三:带有1HZ低通滤波器的电桥放大器电路在实际应用中有哪些注意事项?

回答:在实际应用中,带有1HZ低通滤波器的电桥放大器电路需要注意以下几点:

  1. 元件选择:应选择精度高、稳定性好的元件,如精密电阻、低噪声运放等,以确保电路的测量精度和稳定性。

  2. 布局与布线:合理的电路布局和布线可以减少电磁干扰和噪声耦合,提高电路的抗干扰能力。

  3. 温度补偿:由于温度变化可能影响电阻的阻值,进而影响电桥的输出电压,因此需要考虑温度补偿措施,以提高电路的温度稳定性。

  4. 校准与标定:定期对电路进行校准和标定,以确保测量结果的准确性和可靠性。

  5. 安全保护:在电路设计中应加入必要的保护措施,如过流保护、过压保护等,以防止电路在异常情况下损坏。

CYMBET公司的发展小趣事

CYMBET公司成立于2000年,专注于微电子系统固态储能解决方案的研发与生产。在早期,公司就凭借其创新技术——可充电固态电池芯片(EnerChip)在行业中崭露头角。这种电池芯片使用标准半导体集成电路工艺和独特的构造技术,提供了环保、生物相容的嵌入式电源功能。EnerChip的推出不仅打破了传统电池的局限,还为医疗、传感器、RFID、工业控制等领域带来了革命性的变化。

Austek Microsystems公司的发展小趣事

面对行业技术的快速迭代,Austek Microsystems始终保持敏锐的洞察力。公司不断投入研发资金,引进先进的生产设备和技术人才,进行技术升级和产品迭代。通过不断地优化产品性能、提升生产效率,Austek Microsystems逐渐在市场中树立起了技术领先的形象。

Hengstler GmbH公司的发展小趣事

Austek Microsystems成立之初,便以研发创新为核心驱动力。面对竞争激烈的市场环境,公司团队凭借深厚的技术积累,成功开发出了一款具有高性能和低功耗特点的微控制器芯片。这款芯片不仅满足了当时市场对高效能计算的需求,也为Austek Microsystems在电子行业中赢得了初步的市场认可。

Elpress AB公司的发展小趣事

在追求经济效益的同时,Elpress AB也注重可持续发展和环境保护。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Elpress AB还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elpress AB的社会责任感,也为公司的长期发展奠定了坚实的基础。

Califia Lighting公司的发展小趣事

Califia Lighting公司的创立源于创始人对节能照明技术的深刻理解和前瞻视野。在电子照明行业快速发展的背景下,他们看到了LED照明技术的巨大潜力,并决定投身其中。凭借对技术的热爱和对市场的敏锐洞察,Califia Lighting成功研发出了一系列高性能的LED灯具和模块,为公司的起步奠定了坚实的基础。

问答坊 | AI 解惑

用SPMC75F2313A实现LIN结点

1 引言    LIN 是低成本网络中的汽车通讯协议标准,LIN(Local Interconnect Network)是低成本的汽车网络,它是现有多种汽车网络在功能上的补充由于能够提高质量、降低成本,LIN 将是在汽车中使用汽 ...…

查看全部问答>

做个FDD接口的U盘如何?

昨日与友人闲谈,得知其急需一FDD接口的U盘.用于工控.遂发此贴,求助于诸位.提及FDD(即软驱),众皆笑曰:\"淘汰久矣!\"然,君不见其依然服役于众多工控场合?随之FPGA/RAM等先进技术之普及.待处理数据之大,昔日之1.44何以满足?市有产品曰:仿真软驱,价格奇 ...…

查看全部问答>

C++.net硬件开发

请问各位大侠,C++.net能开发硬件程序吗,就是那种控制门口挡车杆升降的程序。 如果不能,那可以用VisualC++开发吗? 多种语言开发的程序可不可以组成一个软件上那? 谢谢各位。…

查看全部问答>

老妪变少女,AMD暴笑视频

       偶然在网上看到了AMD的一个“我为三核狂”活动,整个活动的主旨都是围绕“三核”的概念来的,网友的热情和创意也是让人叹为观止,大家下面这些有趣的作品吧。简直是神了!大家也来欣赏一下哦      &n ...…

查看全部问答>

寻找西安写PDA软件的开发人员或公司。

要求:1、熟悉WINCE平台       2、有相关产品介绍       3、必须是西安的 联系QQ:112654 信箱:xclion@126.com 价格面谈。…

查看全部问答>

STM32系列芯片名称定义

每种STM32的产品都由16个字母或数字构成的编号标示,用户向ST订货时必须使用这个编号指定需要的产品。这16个字符分为8个部分,下面通过一个例子说明它们的意义:      STM32 F 103 C 6 T 7 xxx        1   2& ...…

查看全部问答>

LM3S9B96开发板里面怎么没有spiflash_rw例程?

    lm3s9b96开发板里面怎么没有spiflash_rw例程?   …

查看全部问答>

P1口与P2口的区别~~

我用P1口接4*4矩阵键盘,现在为了省出P1.0口作为AD通道,采用P2口接4*4矩阵键盘。 然后配置P2.6和P2.7作为GPIO口,然后程序的其他地方都是把P1改为P2,为什么不能用呢?????? 大家有过这样的经历吗?…

查看全部问答>

EE Logic 空白PCB申请条件

经过一段时间的调试,EELogic的第一版硬件基本测试完成。 电源工作正常,68013能正常下载固件,FPGA能正常下载及运行。 基本硬件测试通过,起码保证了大家申请到板子回去焊接后能工作,避免浪费大家的时间及经费。 软件开发主要有三个部分: 1 ...…

查看全部问答>

求助,FGPA不识别

通过usb blaster ii接口烧写过一次jic文件,后来再烧写时点击“Auto Detect”就再也检测不到型号了,提示信息“unable to scan device chain.Hardware is not connected.” 求助给位怎么解决。 …

查看全部问答>