首页 > 其他分享 >基于stm32H730的解决方案开发之freertos系统解析

基于stm32H730的解决方案开发之freertos系统解析

时间:2023-11-17 10:13:54浏览次数:36  
标签:Task freertos ADS1299 解决方案 StartTask task stm32H730 ads

一 概述 在嵌入式小系统领域,freertos是一个非常厉害的角色。它和小芯片结合,能迸发出非常大的威力。这里在H730上使用了这个freertos,是应该做一个总结和备忘。 二 实例解析 1 线程初始化: freertos最大的优势就是多任务,所以,多线程非常重要,怎么定义一个线程呢? 下面给出一个例子:

  /* definition and creation of Task_ADS1299 */
  osThreadDef(Task_ADS1299, StartTask_ADS1299, osPriorityHigh, 0, 2*512);
  Task_ADS1299Handle = osThreadCreate(osThread(Task_ADS1299), NULL);

  /* definition and creation of Task_MPU6050 */
  osThreadDef(Task_MPU6050, StartTask_MPU6050, osPriorityNormal, 0, 512);
  Task_MPU6050Handle = osThreadCreate(osThread(Task_MPU6050), NULL);

 

这里面其实都是标准的,每个参数的含义可以看函数即可,没有太复杂的逻辑存在。 2 运行 下面这个函数是freertos启动的标志。
  /* Start scheduler */
  osKernelStart();

 

3 线程内部, 线程内部其实是一个非常标准的流程, 初始化加主循环。
void StartTask_ADS1299(void const * argument)
{
  /* USER CODE BEGIN StartTask_ADS1299 */
  //EXTI_PIN_1_Init();
    mprintf("StartTask_ADS1299 success start \n\r");
    static uint32_t ads_task_cnt = 0;

    
  /* Infinite loop */
  for(;;)
  {
    
      osDelay(200);
      ads_task_cnt++;


      //if((ads_data_cnt%10) == 0)
      {
          mprintf("ads_task_cnt is:%d \n\r",ads_task_cnt);
      }
        

  }
  /* USER CODE END StartTask_ADS1299 */
}

 

三 总结   1 freertos系统其实非常简介,想要看配置的话,就参考文件:FreeRTOSConfig.h文件。 想要看一下系统的整个流程,也就是看一下queue.c task.c几个文件,如下图所示:    

标签:Task,freertos,ADS1299,解决方案,StartTask,task,stm32H730,ads
From: https://www.cnblogs.com/dylancao/p/17838019.html

相关文章

  • FreeRTOS 原理 --- 最少剩余可用栈 与 栈溢出检查
    函数 uxTaskGetStackHighWaterMark()可用于获取任务的最少剩余可用栈#if(INCLUDE_uxTaskGetStackHighWaterMark==1)UBaseType_tuxTaskGetStackHighWaterMark(TaskHandle_txTask){TCB_t*pxTCB;uint8_t*pucEndOfStack;UBaseType_tuxRetur......
  • FreeRTOS系统中CPU使用率统计方法分析
    基本概念操作系统中CPU使用率是在软件架构设计中必须要考虑的一个重要性能指标。它直接影响到程序的执行时间以及优先级更高的任务能否实时响应的问题。而CPU使用率也不能过低,避免资源浪费。统计方法FreeRTOS操作系统是使用任务的累计运行时间来统计每一个任务自系统开始运行到......
  • 如果VLAN间有了互访的需求,那该如何实现呢?(华为华三主流解决方案)
    作者:网络之路一天 首发公众号:网络之路博客(ID:NetworkBlog)单臂路由的形式虽然解决了VLAN间互通的问题,但是呢,里面存在几个比较明显的弊端。由于早期的路由器只有两个接口,所以只能一根线接到一个二层交换机上面,造成了路径是次优的,比如client2要去Server的流量,它是先从核心交换机到出......
  • 多重匹配解决方案的证明
    1.拆点首先对原图的任意一个匹配,显然可以在新图中找到对应的匹配(当然不止一种)而新图的任意一个匹配,我们先将其进行标准化,具体来说,对原图中\(j\)拆成的若干个节点,他们在新图中的连边全部往前面放,并且按照左部节点的顺序大小排序(见下),根据鸽巢原理,肯定能找到原图......
  • Redis 缓存系统常见问题及解决方案(缓存击穿,缓存穿透,缓存雪崩)
    1、缓存穿透缓存穿透指当用户在Redis缓存系统执行一条无效查询时,这条无效查询将穿透Redis缓存系统并向MySQL数据库请求数据,而MySQL数据库也获取不到数据。黑客可以利用缓存穿透原理,恶意执行大量无效查询,这将会对MySQL数据库的访问造成很大的压力解决方法:1、缓存......
  • 基于stm32H730的解决方案开发之点亮第一个LED灯
    一概述STM32H730超值系列内含Arm®Cortex®-M7内核(具有双精度浮点单元),工作频率可达550MHz。内嵌的128KB闪存使意法半导体能够为开发人员提供一种经济划算的解决方案。凭借着高主频,高性能以及低成本。这颗料注定会成为一个网红产品。笔者最近有几款产品用到了该芯片,借此机会......
  • 振弦传感器表面应变计与振弦采集仪形成岩土工程监测的解决方案
    振弦传感器表面应变计与振弦采集仪形成岩土工程监测的解决方案振弦传感器表面应变计与振弦采集仪可以结合使用,形成岩土工程监测的解决方案。具体的方案包括以下几个步骤: 1.安装振弦传感器表面应变计:首先需要在需要监测的岩土结构表面安装振弦传感器表面应变计。这个过程需要......
  • Vscode 更新之后连不上服务器的解决方案
    参考这里有一点不一样:不需要删除.vscodeserver<参考的博文:原文:删掉整个.vscodeserver目录,然后重新生成(重新连接,失败后就重新生成了)>只需要删除.vscodeserver\bin\下的文件夹,他们就是不同版本的server然后新建那个$COMMIT_ID的文件夹就可以了,这一步参考上文。再然后再链接就......
  • FreeRTOS(3):事件组、任务通知
    1.事件组学校组织秋游,组长在等待:⚫张三:我到了⚫李四:我到了⚫王五:我到了⚫组长说:好,大家都到齐了,出发!秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的。在这个日常生活场景中:⚫出发:要等待这3个人都......
  • SQLSERVER 2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性 P
    被此问题困扰许久,查遍全网也没有查到合适的解决方案。特此记录,希望帮到需要的人。SQLSERVER2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性Password。(Microsoft.SqlServer.ConnectionInfo)”===================================设置连接字符串......