当前位置: 首页 > article >正文

stm32开发之rt-thread使SysTick处于微妙级运行时,出现的问题记录

前言

  1. 在使用rt-thread开发时,想将调度的时间间隔缩短到微妙级别。根据提示需要修改对应的宏定义即可。这里在修改宏定义时,发现进入中断太过频繁,以至于主逻辑一直无法执行。这里测试的环境如下:

相关环境介绍

  1. 开发工具使用的是CLION
  2. 测试开发板使用的是普中stm32F407zgt6
  3. rt-thread的版本选用的是5.0.2版本

修改RT_TICK_PER_SECOND的值(默认为1000)

  1. 这里修改为10000,对应的频率为100us触发一次Systick_Handler中断处理函数
    在这里插入图片描述

测试结果

  1. 在普中这个开发板上100us定时中断处理函数,暂时正常。然后上升到10us的时候,就会出现问题

处理方式

  1. 修改官方提供的驱动函数

在这里插入图片描述
在这里插入图片描述

最终测试(仅针对于上述所说的开发板)

  1. 最高大致可以达到4us的情况,

在这里插入图片描述
2. 测试程序(使用的是软件定时器)

/*
 * Copyright (c) 2024-2024,shchl
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 24-9-1     shchl   first version
 */
#include "main.h"

static struct rt_timer timer;

static void timer_out_cb(void *parameter) {
    bsp_gpio_toggle(LED0);
}

int soft_timer_init() {
    rt_timer_init(&timer, "timer_s",
                  timer_out_cb, NULL,
                  50*(RT_TICK_PER_SECOND/1000),
                  RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER
    );


    rt_timer_start(&timer);

    return 0;
}

INIT_APP_EXPORT(soft_timer_init);


http://www.kler.cn/a/287177.html

相关文章:

  • 时序数据库TDEngine
  • 深入理解分页及 PageHelper 使用细节与注意事项
  • AI模型新发现:精度的重要性超出预期
  • 【GPTs】Ai-Ming:AI命理助手,个人运势与未来发展剖析
  • 用邻接矩阵实现图的深度优先遍历
  • 【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来
  • GraphPad Prism下载安装教程怎样中文汉化
  • 第3章-03-Python库Requests安装与讲解
  • 机器学习数学公式推导之线性回归
  • 系统监控和命令行环境
  • python中**字典的含义
  • MATLAB下的粒子滤波例程|三维非线性模型|组合导航|PF代码(无需下载,直接复制到MATLAB上即可运行)
  • http的三次握手和四次挥手
  • 制造企业SRM系统中如何进行供应商的管理
  • 质量小议43 - 提效
  • 如何通过选择合适的编程工具来提升编程效率
  • 零基础5分钟上手亚马逊云科技-高可用负载均衡器
  • 浅谈SpringMvc的核心流程与组件
  • 零基础学习Redis(7) -- hash类型命令使用
  • 【区块链 + 司法存证】数据存证区块链服务开放平台 | FISCO BCOS应用案例
  • Qt详解QHostInfo
  • MindSearch CPU-only 版部署
  • 华为云征文|部署内容管理系统 Joomla
  • React 入门第八天:性能优化与开发者工具的使用
  • this.$nextTick() 是 Vue.js 提供的一个方法
  • A* 算法优化思路