STM32F1的无法进入SysTick_Handler中断的问题完美解决最终版

首先,请参考其他的博文,他们写的很详细

比如这位老哥的:https://blog.csdn.net/lnniyunlong99/article/details/104636389

然后,我来补充一个。

你是不是添加了这个代码?

void delay_init(uint8_t SYSCLK)
{
    SysTick->CTRL&=0xfffffffb;
    fac_us=SYSCLK/8;
    fac_ms=(uint16_t)fac_us*1000;
}

这段代码据说是正点原子的。这段代码在一些博文都吹得飞起,说什么很有参考价值。
去掉这段东西,就好了。

原因,我猜是因为这段玩意更改了SysTick->CTRL,导致出错了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在STM32F1系列上使用FreeRTOS,可以按照以下步骤进行移植: 1. 首先,从官网http://www.freertos.org/下载FreeRTOS源码V9.0.0。 2. 创建一个新的工程,并在工程中新建一个文件夹,命名为FreeRTOS。 3. 打开FreeRTOS源码中的FreeRTOS文件夹,将其中的所有文件复制到新建的FreeRTOS文件夹中。 4. 进入porttable文件夹,仅保留自己需要的Keil、MenMang、RVDS等文件。 5. 在空的工程中添加FreeRTOS的文件路径,并添加相关内容。 6. 确保portable文件夹中的MemMang下的heap_4和RVDS文件夹下的ARM3的port适配到了你所使用的stm32f1的芯片。 7. 将FreeRTOSConf.h文件拷贝到源码中的include文件夹下。 8. 将原来使用的sys.h、delay和usart文件夹替换为FreeRTOS版本。 9. 屏蔽掉stm32f10x_it.c中的三个函数SysTick_Handler()、SVC_Handler()和PendSV_Handler()。 10. 查看FreeRTOSConf.h文件的配置,确保配置正确。 11. 编写一个简单的程序进行测试,例如初始化PA8引脚,创建一个启动任务,在启动任务中创建一个LED闪烁的任务,假设LED的IO口是PA8。 以上是将FreeRTOS移植到STM32F1系列上的基本步骤。你可以按照这些步骤进行操作,并根据实际情况进行适当的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [FreeRTOS:如何移植到STM32F1中(附例程模板)](https://blog.csdn.net/weixin_42362528/article/details/123885031)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值