正点原子MiniFly V1.2学习笔记五---sensorsTask

2023-05-16

  这里先学习第8个任务sensorsTask,2,3,6,7任务后面再学,先学重要的。

  xTaskCreate(sensorsTask, "SENSORS", 450, NULL, 4, NULL);	//传感器处理任务

一、任务函数

在这里插入图片描述
看一下上面用到的sensors变量的定义:
在这里插入图片描述
任务的流程:
  先初始化I2C,初始化传感器----->进入循环,等待传感器中断发送二值信号量------>得到信号量后读取传感器数据到buffer数组中---->处理buffer数据得到加速度,陀螺仪,磁力,气压等,然后把它们各自入到自己的队列中。

二、任务的第一个调用sensorsInit();

在这里插入图片描述
在这里插入图片描述
  初始化传感器。创建了一个二值信号量sensorsDataReady,初始化全局变量gyroBiasRunning,初始化全部传感器,初始化PA4为引脚中断EXTI4。当传感器数据准备好时,会产生中断。中断中释放二值信号量。在任务循环中获取二值信号量,然后读取传感器。
(二值信号量与互斥信号量的区别参考: https://www.cnblogs.com/yangguang-it/p/7215858.html)

三、变量gyroBiasRunning

  结构体的名字 Axis3f—表示3轴,每轴的数据是f型,即表示3个f型数据
Axis3i16----表示3轴,3个int16数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、i2cdevInit(I2C1_DEV)

  参数是宏
在这里插入图片描述
  相当于i2cdevInit( &sensorsBus ),变量sensorsBus被定义为I2cDrv类型,看上面typedef,与I2C_Dev 等同
在这里插入图片描述
  再来看一下I2cDrv是什么类型
在这里插入图片描述
在这里插入图片描述
  这里定义有点复杂: 定义一个I2C结构体变量sensorsBusDef,并对它赋初值----->该变量的地址赋给了结构体变量sensorsBus的def元素------>再把sensorsBus的地址赋给宏I2C1_DEV。所以当I2C1_DEV传递给型参dev时,dev–>def 即是I2C结构体变量sensorsBusDef。
  所以i2cdevInit(I2C1_DEV);只是把I2C1的引脚初始化,并初始化DMA和创建了一个二值信号量和一个互斥信号量。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正点原子MiniFly V1.2学习笔记五---sensorsTask 的相关文章

随机推荐

  • CMakeList.txt写法

    ROS 创建并运行一个c 43 43 的demo xyzxyz576的博客 CSDN博客 目录 样例 解释如下 1 确定cmake最低版本需求 2 确定工程名 3 添加需要的库 4 添加需要的头文件 5 确定编译语言 6 设定变量 7 添加
  • 解决WSL2中Vmmem内存占用过大问题

    Vmmem介绍 Vmmem 进程是系统合成的一个虚拟进程 xff0c 用于表示虚拟机消耗的内存和 CPU 资源 换句话说 xff0c 如果您看到 Vmmem 消耗大量内存和 CPU 资源 xff0c 那么这意味着您的虚拟机正在消耗大量内存和
  • gnss、gps、imu、rtk、ins区分及含义

    gnss和gps区别 1 GPS xff08 全球卫星定位系统 xff09 是由美国国防部研制建立的一种具有全方位 全天候 全时段 高精度的卫星导航系统 xff1b 能为全球用户提供低成本 高精度的三维位置 速度和精确定时等导航信息 2 G
  • Windows下启动Docker容器遇到Error invoking remote method ‘docker-start-container‘: Error解决办法

    报错 xff1a Error invoking remote method 39 docker start container 39 Error HTTP code 500 server error Ports are not availa
  • java变量的定义

    JAVA数据类型 对于整型数据 xff0c 通常情况下使用int类型 但是如果表示极大的数据 xff0c 就需要long类型了 xff0c byte和short类型主要用于特定的应用场合 xff0c 例如 xff1a 底层的文件处理或者需要
  • java数据类型转换(强制转换)

    数据类型的转换 xff0c 分为自动转换和强制转换 自动转换是程序在执行过程中 无声 进行的转换 xff0c 不需要提前声明 xff0c 一般是从位数低的类型向位数高的类型转换 xff1b 强制转换则必须在代码中声明 xff0c 转换顺序不
  • 斗鱼直播与熊猫直播竞品分析

    引言 xff1a 目前国内直播平台虽然十分火爆 xff0c 但是直播的市场尚未成熟 xff0c 斗鱼等其他直播平台在利用自己用户的基础一直处在直播平台的主流市场 xff0c 而新晋直播平台开始大肆的宣传和吸引用户 xff0c 最终直播这块市
  • 知乎产品分析|知识社区何去何从

    一 引言 2017 年 2 月 xff0c 知乎月独立用户设备数再次回升 xff0c 相比 1 月上涨了 11 2 xff0c 达到了 1109 万台 1 1 目的 通过对知乎这款产品的分析 xff0c 锻炼自己的思维能力 xff0c 深化
  • 以CSDN为例解释尼尔森十大交互原则

    一 状态可见原则 用户在网页上的任何操作 xff0c 不论是单击 滚动还是按下键盘 xff0c 页面应即时给出反馈 即时 是指 xff0c 页面响应时间小于用户能忍受的等待时间 举例 xff1a CSDN上文章底部都会有一个 喜欢 按钮 x
  • Chapter007-FPGA学习之IIC总线EEPROM读取

    IIC总线是嵌入式领域较为重要的器件间通信总线 xff0c 同样 xff0c FPGA也能通过模块的形式实现IIC的功能 xff0c 其原理和STM32的模拟IIC总线一致 xff0c 就是控制每个时间点的SCL SDA总线电平 IIC总线
  • 游戏化思维——核心驱动力

    游戏是一个令人着迷 xff0c 并且能够让人沉迷于此的东西 xff0c 而游戏之所以如此迷人 xff0c 不但是游戏的制作精良和剧情引人入胜 除此之外还有些其他原因 xff0c 激励人民玩游戏的原因是 xff1a 游戏能够触及到人性的核心驱
  • 从产品设计到用户设计

    从产品设计到用户设计 一说起产品设计 xff0c 人们往往想到两个方面 感官方面 功能方面 感官方面 xff1a 精心设计的产品能够给用户带来赏心悦目的感觉 xff0c 当然极大部分是属于触感方面 xff08 嗅觉和味觉因为局限问题无法在产
  • 十年寒窗,从高考到海盗,人的梦想是不会结束的

    其实这是讲述我是如何想要成为一名海盗的 又是一年高考时 我翻看着手机 xff0c 看着朋友圈里面各种高考热文一篇篇的出现 xff0c 心里难免有些感慨和一些自己的回忆 当年高考时也像现在一样 xff0c 看到了许多这样的文章 xff0c 看
  • 为体验设计——使用第一

    产品设计和用户体验设计有什么不同呢 xff1f 每个产品都是以用户是人类为前提而设计出来的 xff0c 而产品的每一次使用 xff0c 都会产生相应的体验 用户体验设计并完全不等同于产品设计 但是对于一个简单的情况下 xff0c 创建一个良
  • 用户体验和网站

    用户体验对于所有的产品和服务来讲 xff0c 都是至关重要的 现在讨论一种特殊产品的用户体验 xff1a 网站 xff08 这里的 网站 一词包括以内容为主的网站产品和以交互为主的网站应用 xff09 在网站上 xff0c 用户体验比任何一
  • UCOS II两个任务的模板

    芯片lm3s9b92 include lt includes h gt include 34 utils uartstdio h 34 Application tasks 优先级 define TASK2 PRIO 11 define ta
  • UCOSII 信号量和信号量集实例

    代码来自于书本光盘 嵌入式操作系统UCOSII原理及应用 实例1信号量 include 34 includes h 34 define TASK STK SIZE 512 任务堆栈长度 OS STK StartTaskStk TASK ST
  • 正点原子MiniFly V1.2学习笔记一

    之前看过原子哥的FreeRTOS开发手册 xff0c 但是对整个项目 怎么架构还不是很清楚 由于最近工作需要上FreeRTOS xff0c 所以决定通过MiniFly来学习一下FreeRTOS的架构 一 main 函数 int main s
  • 正点原子MiniFly V1.2学习笔记三---atkpRxAnlTask

    第5个任务 解析处理接收到的指令 xTaskCreate atkpRxAnlTask 34 ATKP RX ANL 34 300 NULL 6 NULL 上面第1个任务 xff0c 把串口接收到的数据解包后得到指令 xff0c 然后把指令发
  • 正点原子MiniFly V1.2学习笔记五---sensorsTask

    这里先学习第8个任务sensorsTask xff0c 2 xff0c 3 xff0c 6 xff0c 7任务后面再学 xff0c 先学重要的 xTaskCreate sensorsTask 34 SENSORS 34 450 NULL 4