历史上的今天
返回首页

历史上的今天

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

2018年12月21日 | STM32L0 SysTick无法进入中断怎么处理

2018-12-21 来源:eefocus

使用LL库,对systick进行配置LL_SYSTICK_SetClkSource(LL_SYSTICK_CLKSOURCE_HCLK);

LL_SYSTICK_EnableIT();


如此设置,选择了时钟源,打开了中断。讲道理应该可以进中断。但是,事实上却不是这样。systick就是进不了中断。


检查一下标志位:


在这里插入图片描述


原因是systick没有使能。


使用如下函数可以初始化systick。


__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

{

  if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)

  {

    return (1UL);                                                   /* Reload value impossible */

  }


  SysTick->LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */

  NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */

  SysTick->VAL   = 0UL;                                             /* 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 (0UL);                                                     /* Function successful */

}


这是一个带返回值的函数。传递参数ticks是对reload进行赋值。如果参数合法,则对systick进行初始化。包括reload寄存器设置、优先级设置、Counter Value寄存器设置,还有就是时钟源选择、中断允许、systick使能等操作。返回值表示成功与否。想成功使用systick,直接调用函数SysTick_Config()就可以了。


推荐阅读

史海拾趣

BERGQUIST公司的发展小趣事

面对日益严峻的环境问题和可持续发展的挑战,BERGQUIST公司始终坚持绿色发展的理念。公司不断投入研发力量,开发环保型热管理材料和生产工艺。同时,公司还积极推广节能减排技术,努力降低生产过程中的能耗和排放。这些举措不仅符合社会发展趋势,也为公司的可持续发展提供了有力保障。

这五个故事从不同角度展示了BERGQUIST公司在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。这些事实性的描述旨在客观呈现BERGQUIST公司的历史与现状,不含任何褒贬之意。

Anderson Power公司的发展小趣事

随着产品技术的不断成熟和市场的逐步认可,BERGQUIST公司开始积极拓展市场。公司不仅在国内市场取得了显著成绩,还积极开拓国际市场,与众多知名电子企业建立了长期合作关系。通过不断提升产品质量和服务水平,BERGQUIST成功树立起了自己的品牌形象,成为热管理领域的佼佼者。

敦泰(FOCALTECH)公司的发展小趣事
调节冰箱温度时,应根据季节和存放食物的需求进行调整。一般来说,冷藏室的温度应设置在2-8℃之间,冷冻室的温度应设置在-18℃以下。可以通过冰箱上的温度调节按钮或触摸屏进行设置。同时,注意避免将温度设置过低或过高,以免影响食物的保鲜效果和冰箱的能耗。
Elpac公司的发展小趣事

Elpac公司深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的人才培训体系,为员工提供多样化的培训和发展机会。同时,公司还鼓励员工积极参与各种创新活动和竞赛,激发员工的创新精神和创造力。这种积极向上的企业文化吸引了大量优秀人才加入Elpac公司,为公司的持续发展提供了有力保障。

CyOptics Inc公司的发展小趣事

2013年4月,Avago宣布以约4亿美元的价格收购CyOptics Inc。这一收购标志着CyOptics的技术实力和市场地位得到了业界的进一步认可。Avago看中了CyOptics在InP光学芯片及组件领域的领先地位,希望借此增强其在新兴40G和100G企业及数据中心应用市场中的竞争力。收购完成后,CyOptics成为了Avago旗下光器件品牌,继续为市场提供高质量的光学产品。

远东福斯特公司的发展小趣事

在被Avago收购后,CyOptics并未停止其技术创新的步伐。公司继续投入研发,推出了一系列新的光学产品和解决方案,以满足不断增长的市场需求。例如,CyOptics的物理介质相关(PMD)IC产品系列,不仅提供了完整的GaAs芯片组件,还提供了跨阻放大器(TIA)、激光驱动器(LD)等一站式芯片套件解决方案,为客户提供了更加便捷和高效的服务。

问答坊 | AI 解惑

JJG49-1999精密压力表检定规程

JJG49-1999精密压力表检定规程…

查看全部问答>

电流控制技术的斜坡补偿分析

电流控制技术的斜坡补偿分析…

查看全部问答>

vs2005 用VC++建立一个MFC智能设备工程的问题

vs2005 在VC++建立一个MFC智能设备工程,我以为和evc4是一样的.但不知为什么有些类总是提示找不到.比如:CCeDBDatabase类等.难道vs2005 在VC++不支持evc4的东西?…

查看全部问答>

求助:各位大哥帮我看看这个串口问题啊?谢谢2!

请教: 当单片机向 PC 串口发串数据 windows 系统怎么知道单片机 向它发了数据呢? 是有消息触发, 还是 windows 每一定的时间去扫描串口? 谢谢!…

查看全部问答>

急问:VS2005, CPP, 如何实现拨打电话和访问网页

如题,请大家帮帮忙,最好有源码,或者告诉我在哪里可以找到范例,谢谢大家了。…

查看全部问答>

分享几个zigbee开源代码的网址

http://www.tinyos.net/ Tinyos是一个传感网络操作系统,最近发展较快,采用nesC语言、支持多种编译器。 http://freaklabs.org/index.php/FreakZ-Open-Source-Zigbee-Stack.html 也是一个不错的zigbee协议栈,不过作者似乎忙于其他项目 ...…

查看全部问答>

第12章 高级I/O

12.1   引言 27312.2   非阻塞I/O 27312.3   记录锁 27512.3.1   历史 27612.3.2   fcntl记录锁 27612.3.3   锁的隐含继承和释放 28012.3.4 &nbs ...…

查看全部问答>

遥控开关电路如何设计?

红外遥控、射频遥控、超声波遥控、电力载波遥控,甚至拍一下手掌开,在拍一下就关的声控开关等等,…

查看全部问答>

怎样向2530中烧程序

各位,怎样向2530中烧程序啊?是通过DD/DC?还是SPI烧写程序呢?…

查看全部问答>

MSP430 串口

void init_uart1(void){  P5SEL |= 0xC0;                             // P5.6,7 = USCI_A ...…

查看全部问答>