- 博客(18)
- 收藏
- 关注
原创 二叉树刷题一
思路:自底向上的想法,一步步向上递归深度。如果左右子树深度相差不超过1,则是平衡二叉树,返回深度, 否则向上返回-1。比较对应节点是否相同,不同返回false,相同则比较对应的左右子树是否相同。再根据 深度==结果集的长度 来判断,该元素是否需要加入结果集。跟上一道题一样,但是是判断左右子树是否轴对称。
2024-05-14 19:55:21
468
原创 2024/3/11 飞控接收规划轨迹代码调试
matlab文件:C:\Users\占子文\Desktop\MyProject\MyApp\My_UI1\UI_7。单片机:C:\Users\占子文\Desktop\MyProject\无人机Keil文件\app通信-3。如图,将数据的四个字节存储反序,就可以解决单片机小端存储的问题。上位机在接收飞控发来的位姿数据的同时,发送规划好的路径;发送给app的消息应该包括轨迹开关。第四个数据一直是0,不知道为什么。总之,轨迹数据可以正常传输!traj确实在头文件里定义了。飞控代码开启中断接收。
2024-03-13 14:33:12
448
原创 freertos学习——任务调度
但是空闲任务的优先级是最高的,因此如果其他任务都在running或者ready的话,空闲任务就永远没有办法运行,所以,建议不要使用Delay函数,而是使用vTaskDelay函数使任务进入阻塞态,CPU可以运行空闲任务“收尸”。如图,在xTaskCreate时,会把新建任务加入对应优先级的ReadyLists中,并且有个pxCurrentTCB指针指向它,当开启任务调度后,就会从pxCurrentTCB指向的任务开始运行。不能保证函数周期性运行,因为可能每次运行的时间不一样。2、同优先级如何切换任务?
2024-03-05 21:33:27
490
1
原创 2024/3/4调试APP上位机
C:\Users\占子文\Desktop\MyProject\MyApp\My_UI1\UI_6_for_test\ReceiveData。C:\Users\占子文\Desktop\MyProject\无人机Keil文件\app通信-2。出现问题:无人机一直飞歪,但是UWB-光流能飞,所以应该是之前改动了一些东西,现在想办法改过来。原来的数传出了莫名其妙的问题,换了一个数传就好了,离大普。2、去除跟matlab通信控制的代码。3、去除一段傻逼代码,可以正常飞了。yaw pitch roll调好了。
2024-03-05 15:49:22
479
原创 2024/2/26 无人机-UI通信调试
a、当我先给无人机上电,然后紧接着打开matlab脚本,是没有问题的,一旦无人机上电过了一段时间,再打开脚本,就没有办法读取到了。无人机文件:C:\Users\占子文\Desktop\MyProject\无人机Keil文件\app通信。3、查看手机热点连接设备数量,看看数传是否连接上(如果没连上,给电池充电,可能电压不够,或者供电不稳定)4、保证连接手机热点后,重新下载无人机代码,然后利用匿名上位机看看是否可以正常接收数据。b、先用匿名上位机接收,再用matlab脚本接收,又可以了。
2024-03-04 14:21:46
542
原创 freertos-韦东山——heap管理
例如,程序运行后,当所有内核对象都分配好后,执行此函数返回2000,说明还剩余2000个单位,那么configTOTAL_HEAP_SIZE就可减小2000,来优化。// 分配内存,如果分配内存不成功,则返回值为NULL。heap2可以回收,但是会产生碎片,因此只适合分配内存大小一样的场景。heap4解决了heap1、heap2的缺点,一般使用heap4。heap1使用简单的数组定义堆,速度快,但是没有办法回收;
2024-03-03 23:02:18
682
原创 LeetCode 两数之和
std::map<X, Y>实际储存了一串std::pair<const X, Y>这等同于it->first和it->second。(*it).second会得到value。(*it).first会得到key,自动判断后面修饰的变量的类型。
2024-03-01 22:07:24
373
原创 韦东山freertos学习-arm架构及汇编指令
BL main Branch and Link,先把返回地址保存进LR寄存器中,再进行跳转。比较R0, R1的值,比较的结果放在xPSR寄存器(程序状态寄存器)中。B main Branch,直接跳转,PC直接跳转。指令保存在芯片的FLASH上,数据保存在内存里。读地址“R1+4”,得到的四字节数据存入R0。写地址,将R0的值写入"R1+4"的地址。芯片读写运算的过程,例如a = a*b。2、对数据的运算是在CPU内部实现。R14-LR寄存器, 保存返回地址。其中, r1寄存器保存常量1。
2024-02-27 20:04:39
884
原创 韦东山Freertos学习-第一个多任务程序创建
例如:xTaskCreate( MyTask, “First_Task”, 128, NULL, osPriorituNormal, NULL);BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, //运行函数。const configSTACK_DEPTH_TYPE uxStackDepth, //堆栈大小。TaskHandle_t *pxCreatedTask //一般填入NULL。不同操作系统有不同的创建API函数。
2024-02-27 19:20:53
615
原创 【无标题】
目前还没有让真实无人机飞行,因此写了一个python脚本模拟无人机发送数据的情况,脚本位置在:C:\Users\占子文\Desktop\MyProject\MyApp\drone_2_simulink\UDP_test1.py。3、appdesigner内打开C:\Users\占子文\Desktop\MyProject\MyApp\My_UI1\UI_6_for_test里面的app1.mlapp。清除轨迹之后,轨迹会被清除,可以设置起点、障碍物、终点,但是不能再次规划轨迹。贝塞尔优化,会使轨迹平滑。
2024-02-23 14:33:45
441
原创 【无标题】
但是这样的结构会存在一个问题,如上图所示,当队尾减少时,队列会空出位置,无法得到利用。当使用环形队列时,队列长度为QueLength=6;如图所示,队列增加或减少时,队首增加,队尾减少。队首leader=5时,
2024-01-03 20:57:32
641
原创 【无标题】
如果某个文件我们觉得改好了,此时可以使用git add将这个文件放到我们的stage部分中,意味着这个文件已经改好了。此时如果使用git diff,我们add的几个文件是不会diff出来的。显示出工作区中自上一次add后修改过的文件,并显示出有啥变化。当我们修改了某个或者某几个文件的时候,我们的工作区会发生变化,此时使用。把工作区里的某个文件加入暂存区,表示这个文件已经改好了。会显示,这几个文件还没有add,需要我们add到暂存区。会表示,暂存区里啥也没有,工作区也没有需要add的。
2024-01-02 09:52:51
451
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅