TT无人机扩展模块库分析(default.ino)补篇3
处理有关矩阵的命令:
自定义回调函数的模板,先定义三个参数
下面写处理函数就行
WiFi更新功能
先定义一个cnt变量
注释写:将您的设置代码放在此处,即可运行一次
先设置一个串口波特率,开启的是Serial,是一个作为log专用的打印口
Serial1是一个通用的串口:波特率为100000,后面是几个参数在我
这篇文章里面有解释,可以看一下~
初识化上面的LED小灯
然后给RGB的灯设置一个颜色(0,255,0)绿色的。
接着用延时函数
下面是一个死循环
这个是while(1)的代码
这段代码也是在程序中多次出现的代码,就是从串口读入数据。然后就是设置顶部的Led的灯的颜色,具体代码不难,不进行讲解
Gamesir游戏杆蓝牙(BLE)连接处理
@param arg有关任务控制的参数
直观得看这个函数,是一个只传入一个参数的函数,而且没有返回值。
首先用static的关键字修饰了两个变量,且初值为0
接着这toggle是一个切换用的计数变量
下面是声明了一个int型的数组,初始值为0,大小为6
我们追踪这个led_cnt的变量的一生,大致来看应该是一个led的计数变量
此时我再缩进一层,逻辑是很简单的
就是判断当前灯的设置效果是什么样的。直接插名字吧。
大写的名字翻译过来是LED效果出厂模式,就是恢复到出厂的灯设置的模式
就是调用手柄的连接状态函数,下面的SI也自动的对文件进行了追踪,是一个
Bool型的函数,这里也好理解。因为对于状态来说,就是连接上了。没有连接上。没有什么第三态。
如果配对模式为真,就闪蓝灯
在用户手册里面说了这一点
在这里,我们来解读一下。看见蓝灯闪烁是进入配对模式
下面是有一点CPP的编写的味道的
https://www.runoob.com/cplusplus/cpp-member-operators.html
(点)运算符和 ->(箭头)运算符用于引用类、结构和共用体的成员。点运算符应用于实际的对象。箭头运算符与一个指向对象的指针一起使用。
描述
C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。
声明
下面是 memcpy() 函数的声明。
void *memcpy(void *str1, const void *str2, size_t n)
参数
str1 -- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 -- 指向要复制的数据源,类型强制转换为 void* 指针。
n -- 要被复制的字节数。
我们解读一下,在这个p_tt_gamesir里面有一个GetMac()
得到Mac地址以后复制到前面的低功率蓝牙mac的地址后面,复制6位
在这两个里面可以找到
在头里面找到这个,是一个无符号的char类型
0~127
这个地方也有
这里也有,我们之后会读到这些代码。这里就是稍微找一下~
再次看一下这个CommonSerial 就是普通的Serial
设置mac地址过滤功能是否开启
在头文件里面被定义
先打开过滤功能,接着打印Tello设置的6位mac地址
是把数组分开赋值的~~~
延时50毫秒
*获取是否收到布尔类型数据的有效状态
*来自无人机
第三次出现这个函数
我们把焦点继续放回这个函数上面如果接受到无人机的bool类型的数据有效
就执行{}里面的code
首先是我们在文章的第一篇就研究的调试开关,用编译的条件语句打开输出
打印:ble状态任务():每一个都成功了~
下面又是一个if()语句里面是一个函数,在下面我做了一下查找:获取到收到的数据,把配对模式关闭~
*获取已经收到的布尔类型数据
* @从无人机返回布尔数据
最后我们对这串代码合影留念~
就是一个ble的配对过程
toggle天天看见这个单词
函数只有不多了,下篇继续分析