历史上的今天
返回首页

历史上的今天

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

正在发生

2018年12月24日 | STM32 Systick定时器在实现1us延时的问题与解决

2018-12-24 来源:eefocus

问题:


使用systick_config()函数来实现计数,这个函数在下面代码中的 SysTick_CTRL_TICKINT_Msk 开启了中断。不论系统时钟为72Mhz或36Mhz若设置STM32每10us进入一次中断,计时是可以的;而每1us进入中断,由于中断指令较多,那么程序就会困在中断里出不来。


static __INLINE uint32_t SysTick_Config(uint32_t ticks)

  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);            /* Reload value impossible */

                                                               

  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      /* set reload register */

  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* set Priority for Cortex-M0 System Interrupts */

  SysTick->VAL   = 0;                                          /* Load the SysTick Counter Value */

  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk | 

     SysTick_CTRL_TICKINT_Msk   | 

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

  return (0);                                                  /* Function successful */

}


解决:


尽量不使用中断计时,注释掉Systick_Config()中的SysTick_CTRL_TICKINT_Msk ,或者在delay函数中不使用Systick_Config(),直接自己加载数值。


推荐阅读

史海拾趣

Euroquartz公司的发展小趣事

Euroquartz Limited成立于1982年,其发展历程中,1987年的一次收购具有重要意义。这一年,Euroquartz收购了Brookes Crystals,这是一家在第二次世界大战期间形成的英国石英晶体制造商。这一收购使Euroquartz在石英晶体领域获得了重要的技术积累和市场地位,成为了英国重要的变频控制产品制造商。

Deltrol Controls公司的发展小趣事

在电子行业的早期,Deltrol Controls以其创新的电磁阀产品崭露头角。公司创始人认识到,随着自动化程度的提高,对精确控制流体流动的需求日益增加。于是,他们投入大量研发资源,成功开发出了具有高精度、高可靠性特点的电磁阀。这一创新产品迅速在电子行业获得认可,Deltrol Controls也借此机会逐步扩大了市场份额。

Cal Crystal Lab Inc / Comclok Inc公司的发展小趣事

Comclok Inc创立之初,便专注于高精度时钟芯片的研发与生产。在电子设备的智能化和精准化趋势日益明显的背景下,高精度时钟芯片成为了市场的热门需求。Comclok Inc凭借出色的技术实力和敏锐的市场洞察力,成功开发出一系列性能卓越的时钟芯片,并迅速占领市场份额。公司不仅在国内市场取得了成功,还积极拓展海外市场,与多家国际知名企业建立了长期合作关系。

AVX公司的发展小趣事

AVX一直致力于绿色技术的研发与应用。在数十年的深入研发支持下,AVX的产品为各种绿色技术提供了关键的支持,如风能、太阳能和水力发电等领域。这些技术的应用旨在节省现有能源并创建可靠、价格合理的电子系统,为可持续发展做出了积极贡献。AVX在这一领域的持续投入和创新,使其在绿色技术领域取得了显著成果。

API Delevan公司的发展小趣事

品质是API Delevan公司的生命线。公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重持续改进,通过引入先进的生产设备和技术手段,不断提高生产效率和产品质量。这种对品质的执着追求使得API Delevan的产品在市场上具有很高的声誉。

Gore公司的发展小趣事
在UPS系统中,三电平直流变换器能够提供高质量的直流电源,确保在电网故障时能够稳定供电。

问答坊 | AI 解惑

手机RF设计技巧(一)

 1. 什么是RF?      答:RF 即Radio frequency 射频,主要包括无线收发信机。       2. 当今世界的手机频率各是多少(CDMA,GSM、市话通、小灵通、模拟手机等)?     ...…

查看全部问答>

DIY工具大搜捕

这是EEWORLD网站应本人要求创建的DIY精彩制作子版块,意在帮助喜欢动手的朋友寻找DIY类的工具,或者为了完成某些特定任务、工作等自己DIY的工具!希望大家集思广益,开动脑筋,把自己喜欢的手动工具介绍给大家,或者为了方便大家的日常工作,自己动 ...…

查看全部问答>

24bit ECC问题

TH58NVG6D2ETA20 的nand  flash要求1KB 24 bit ECC,如果我用512B 12 bit ECC代替是否会有风险,谢谢~~    nand flash的bit error rate跟那些因素相关?…

查看全部问答>

鼠标移动检测。

嵌入式系统,usb的鼠标,已经检测到了mouse0设备了,并且上层程序可以打开open了设备了,如何检测鼠标移动了呢?…

查看全部问答>

WinCE SD卡驱动???

请问大家,wince要显示SD盘符,sd的驱动运行到什么阶段? 是   驱动只要把sd controller初始化正确,注册hostcontroller成功,   还是在对sd卡有读操作,读取信息后才会出现盘符?? 谢谢!…

查看全部问答>

底层开发

做wince驱动开发, bootloader 开发(ARM下). 需要有哪些预备知识? 或 怎么去学习它? 请个个步骤,谢谢!…

查看全部问答>

EVC 4为何不能调试CE 5设备?

安装了EVC 4 + SP 4,CE 5 SDK,但调试选项里的调试目标只有CE5 SDK带的模拟器,却没有DEVICE的选项,不知何解? 还安装了PPC 2003 SDK,设备和模拟器都工作正常。 感谢!…

查看全部问答>

★★★最新中文版STM32数据手册和技术参考手册可供下载★

STM32的数据手册是根据2007年11月英文第四版翻译而成。英文原文下载地址:http://www.st.com/stonline/products/literature/ds/13586.pdfSTM32的技术参考手册是根据2007年11月英文第二版翻译而成。英文原文下载地址:http://www.st.com/stonli ...…

查看全部问答>

在问I2C读24C02

在万利板子上用I2C例程5(经万利修改),单步不可以运行,到 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));这一步就等待,连续运行时,有时候好,有时候坏,坏的时候也是到这个地方等待 翻遍了 ...…

查看全部问答>

ST触摸库抗干扰问题

用ST触摸库做了几款产品了, 在办公室测试没有问题, 但是到车间生产的时候灵敏度就明显下降 目前总出货量已经超过8K了,也没有接到相关投诉,所以我想是不是我们车间特有的什么干扰造成的 想问问其他TX有没有这样的问题??怎么解决的?? 谢谢!…

查看全部问答>