目录


前言

xTaskCreate(atkpTxTask, "ATKP_TX", 150, NULL, 3, NULL);                /*atkp发送任务*/
    xTaskCreate(atkpRxAnlTask, "ATKP_RX_ANL", 300, NULL, 6, NULL);        /*atkp解析任务*/




一、void atkpTxTask(void *param)

void atkpTxTask(void *param)
{sendMsgACK();while(1){atkpSendPeriod();vTaskDelay(1);}
}

1.    sendMsgACK();

void sendMsgACK(void)
{
//测试MUP Baro气压 是否初始化完毕msg.version = configParam.version;msg.mpu_selfTest = getIsMPU9250Present();//MPU是否初始化完毕(应该在后文传感器任务初始)msg.baro_slfTest = getIsBaroPresent();//气压计是否初始化完毕msg.isCanFly = getIsCalibrated();//重力是否校准完成msg.isLowpower = getIsLowpower();//是否低电量msg.moduleID = getModuleID();//获取扩展模块 下文任务atkp_t p;p.msgID = UP_REMOTER;p.dataLen = sizeof(msg)+1;p.data[0] = ACK_MSG;memcpy(p.data+1, &msg, sizeof(msg));
//这个数据包的格式为 上行两字节 UP_REMOTER  dataLen  data:ACK_MSG +msgradiolinkSendPacketBlocking(&p);    //发送到 txQueue队列句柄}//msg的格式如下typedef __packed struct
{u8 version;bool mpu_selfTest;bool baro_slfTest;bool isCanFly;bool isLowpower;enum expModuleID moduleID;
} MiniFlyMsg_t;

2.    atkpSendPeriod();/*数据周期性发送给上位机,每1ms调用一次*/

static void atkpSendPeriod(void)
{static u16 count_ms = 1;if(!(count_ms % PERIOD_STATUS)) //在没有30次之前都会进if,之后每到一定PERIOD的倍数 就会余0 然后就会进入if{attitude_t attitude;//定义了 时间戳 yaw pitch rawgetAttitudeData(&attitude);int positionZ = getPositionZ();sendStatus(attitude.roll, attitude.pitch, attitude.yaw, positionZ, 0, flyable);            }if(!(count_ms % PERIOD_SENSOR)){Axis3i16 acc;Axis3i16 gyro;Axis3i16 mag;getSensorRawData(&acc, &gyro, &mag);sendSenser(acc.x, acc.y, acc.z, gyro.x,gyro.y, gyro.z, mag.x, mag.y,mag.z);}if(!(count_ms % PERIOD_RCDATA)){sendRCData(rcdata.thrust, rcdata.yaw, rcdata.roll,rcdata.pitch, 0, 0, 0, 0, 0, 0);}if(!(count_ms % PERIOD_POWER)){float bat = pmGetBatteryVoltage();sendPower(bat*100,500);}if(!(count_ms % PERIOD_MOTOR)){u16 m1,m2,m3,m4;motorPWM_t motorPWM;getMotorPWM(&motorPWM);m1 = (float)motorPWM.m1/65535*1000;m2 = (float)motorPWM.m2/65535*1000;m3 = (float)motorPWM.m3/65535*1000;m4 = (float)motorPWM.m4/65535*1000;sendMotorPWM(m1,m2,m3,m4,0,0,0,0);}if(!(count_ms % PERIOD_SENSOR2)){int baro = getBaroData() * 100.f;sendSenser2(baro, 0);}if(++count_ms>=65535) count_ms = 1;
}

主要是获取各个传感器的数据 然后根据不同的  msgID  传给txQueue  队列

3.    vTaskDelay(1);

https://blog.csdn.net/crjmail/article/details/80015628

二、void atkpRxAnlTask(void *param)

void atkpRxAnlTask(void *param)
{atkp_t p;while(1){xQueueReceive(rxQueue, &p, portMAX_DELAY);atkpReceiveAnl(&p);}
}

1.

2.static void atkpReceiveAnl(atkp_t *anlPacket)

static void atkpReceiveAnl(atkp_t *anlPacket)
{if(anlPacket->msgID == DOWN_COMMAND) //												

(4/10;5/10)xTaskCreate(atkpTxTask, “...“, ., .., 3, ..);atkpRxAnlTask /*创建stkp发送和解析任务*/相关推荐

  1. 神奇的10个人10个帽子的问题

    题目:  10个人10顶帽子,每顶帽子上有1-10中的一个数字,这些数字有可能重复 ,每个人只能看到其他9个人头上帽子上的数字,看不到自己的帽子上的数字 .这时要求每人同时写出一个数字 .  问,是否 ...

  2. lol12月25服务器维护,lol12月10日维护到几点 英雄联盟12月10日10.25版本更新维护时间...

    lol12月10日维护到几点?2020年12月10日英雄联盟全区停机维护更新10.25版本的内容,大家需要等待至维护结束才能登录游戏体验新版本.不知道本次更新时长的玩家,下面小编带来了英雄联盟12月1 ...

  3. AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛——10:40-11:10金驰《Near-Optimal Reinforcement Learning with Sel》

    AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛--10:40-11:10金驰<Near-Optimal Reinforcement Learning with S ...

  4. 十以内的加减java编写程序_Java实现随机出题,10道10以内加减法计算代码实例

    本文实例为大家分享了Java实现随机出题,10道10以内加减法计算l的具体代码,供大家参考,具体内容如下 package com.swift; import java.awt.Toolkit; imp ...

  5. MyBatis-学习笔记10【10.JNDI扩展知识】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  6. 总结一下silverlight文章,然后死等10月10日的正式版

    这三天参加了微软关于WPF&Silverlight的培训(昨天结束),与美国微软总部过来的专家Jaime Rodriguez, Laurence Moroney,做了面对面的技术交流,感觉受益 ...

  7. 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...

  8. Java 10的10个新特性,将彻底改变你写代码的方式

    转载自 Java 10的10个新特性,将彻底改变你写代码的方式 Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,J ...

  9. 在数学中10!代表10的阶乘。既代表1*2*3*4....*10; * 现在要求编程求出8!。

    package Day03;/*** 第四题:* 在数学中10!代表10的阶乘.既代表1*2*3*4....*10;* 现在要求编程求出8!.*/ public class Day03_Demo04 ...

最新文章

  1. influxDB和grafana
  2. ACM之常见的(C++版)问题解析
  3. 安全性、监控、调优 的一些思考
  4. gephi生成网络关系图_用 NetworkX + Gephi + Nebula Graph 分析lt;权力的游戏gt;人物关系(上)
  5. idea中导入jdbc驱动步骤详解
  6. 深圳市云瑶信息科技有限公司
  7. CentOS 7安装 MySQL 8 数据库
  8. 关于引用mshtml的问题
  9. Android adb重启手机
  10. 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
  11. 博弈论入门——威佐夫博弈
  12. nodejs async.whilst用法
  13. android11原生录屏,终于把安卓这项功能实现了!iOS 11录屏功能演示:超好用
  14. 【三子棋】C语言实现简易三子棋
  15. Dell EMC VxRail
  16. python人民币和美元转换
  17. 大多数日志文件的后缀名是_log4j(添加日志)
  18. 微信登录流程图(转)
  19. 2018ChinaJoy万代南梦宫展台速刷攻略
  20. 朝阳医院2018年销售数据分析

热门文章

  1. 最顶级的心理学家是如何看待我们的人生的?
  2. 用Qtl编写媒体软件到安卓(待续)
  3. 将PDF文件转换为JPG格式图片的3种简单方法
  4. 阿里的Hadoop之路:Hadoop的过去、现在和未来
  5. 轻松搞定茶水分离,随时享受清香好味道,Simita名享玻璃泡茶杯上手
  6. 利用Dynamo自动创建Revit楼板
  7. Microsoft Edge浏览器使用体验
  8. 软件测试初始决策表,软件测试决策表
  9. 新年通信新格局 网络电话省钱通信香饽饽
  10. python二手房数据分析_Python 爬取北京二手房数据,分析北漂族买得起房吗? | 附完整源码...