自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (5)
  • 收藏
  • 关注

原创 实操-完美解决repo init 错误 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

typora-copy-images-to: pictures完美解决repo init 错误 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle问题描述想要用repo但是repo相关的源网站在Google上,被墙了,经过百度有2中方法,1.改源 2.Ubuntu FQ连接外网但我都试过了,不行。用下面的链接中的repo文件完美解决!参考链接:https://blog.csdn.net/xiaokewen.

2022-05-03 22:37:23 1050

原创 git的使用-将本地文件 push 到gitee

git的使用-将本地文件 push 到gitee创建 gitee 账号到 /root/[Ubuntu下的用户] 新建一个.ssh 文件 74 mkdir .ssh 75 chmod 755 .ssh 76 touch .ssh/authorized_keys 77 chmod 644 .ssh/authorized_keys 78 cd .ssh/查看秘钥,并将秘钥输入到 gitee 中(需要到根目录下查看) 78 cd .ssh/

2021-08-22 16:58:10 1011 1

原创 不需要虚拟机直接在Windows平台使用Ubuntu

不需要虚拟机直接在Windows平台使用Ubuntu到微软商店下载 Ubuntu 20.04 LTS修改Windows功能,勾选适用于 linux 的Windows 子系统安装完毕安装 gcc/g++sudo apt install gcc / sudo apt install g++然后使用 gcc 编译C语言代码入门使用gcc请看:传送门当然也可以在Ubuntu下使用交叉编译平台编译嵌入式工程 (arm-none-eabi-gcc)编译

2021-08-22 14:20:22 366

原创 keil5中Undefined symbol XXX 的解决方法

keil5中Undefined symbol XXX 的解决方法…\OBJ\LED.axf: Error: L6218E: Undefined symbol SPI_Cmd (referred from spi.o).…\OBJ\LED.axf: Error: L6218E: Undefined symbol SPI_I2S_GetFlagStatus (referred from spi.o).…\OBJ\LED.axf: Error: L6218E: Undefined symbol SPI_I

2021-06-20 11:35:15 9062 2

原创 函数指针和typedef的使用

函数指针和typedef的使用函数指针的作用是什么?我个人觉得是:函数指针可以实现同一个函数模板实现不同的功能。一个函数也可以在另一个函数的参数中存在也就是函数也可以作为形参。也可以在结构体中声明一个函数指针,这相当于你的结构体里面有一个函数,当然也可以直接在结构体里面定义函数(结构体和C++中的 class 唯一的不同就是成员的权限,struct默认权限是私有的,而class默认权限是公有的)讲函数指针之前先来讲一下typedef的使用众所周知,typedef 是重命名一个已经存在的类型,这句话太过

2021-06-18 20:24:00 513

原创 操作系统(Trochili RTOS)-线程管理与调度

操作系统(Trochili RTOS)-线程管理与调度线程是任务代码在处理器上执行的过程它是操作系统调度的基本单位,也是资源分配的基本单位线程对象由线程结构、线程栈、线程函数和相关的线程数据等部分组成线程具有多种运行状态线程状态及其所处的线程队列时匹配的每一个线程都会得到相应的线程储存空间,存储空间里保存了和线程相关的信息,比如线程栈深度(类似数组地址+数组长度)、线程时间片(不同的操作系统可能有所差异)、线程优先级、线程状态、线程主程序地址、线程主程序参数、线程所处队列的指

2021-06-12 22:55:09 576 4

原创 操作系统-信号量

信号量简介一般分为二值信号量、计数信号量和互斥量。前面2个一般被统称为信号量。信号量只用于同步或者互斥操作,它不具备数据交换功能。信号量用于同步的时候就像交通灯,强调的是运行步骤。信号量用于互斥的时候就像一把钥匙,强调的是许可和权限。二值信号量:表示资源是否可用(都可用于任务和ISR同步),计数信号量表示可用资源有多少(都可用于任务和ISR同步,二者都有任务阻塞功能)。信号量的作用任务单向同步任务双向同步多任务单向同步共享资源的同步访问线程间资源共享举例

2021-06-12 21:57:50 362

原创 malloc之动态内存分配初探

动态内存分配初探内存分配有定长内存分配也有动长内存分配,2者各有优缺点,前者寻址的时间复杂度O(1),后者O(n),对于实时性比较高的场景来说很明显前者比较适合,且前者不易造成内存碎片化,后者则更灵活,想要多少就分多少,比较能节省内存。内存碎片化,也就是很难申请到一段连续的堆空间(比如数组),目前博主知道的解决方法可以通过单链表或者双向链表的方式把这些碎片的内存连起来,而又是由于链表的弊端,造成这部分寻址时间会比较长,所以有些设备如果不重启的话会越用越卡,这可能是原因之一。那定长内存分配,定多长? 看

2021-06-11 22:10:19 279 3

原创 调试利器GDB-下

调试利器GDB-下函数调用栈的查看(backtrace和frame)(在你阅读开源代码的时候或许这很有帮助)backtrace查看函数调用的顺序(函数)frame N切换到栈编号为N的上下文中info frame查看当前函数调用的栈帧的信息调试小技巧| 操作 | 命令 || -------------- || 断点处自动打印 | display /f expression || | undisplay || 查看程序中的符号 |

2021-06-07 23:08:37 100

原创 调试利器GDB-中

GDB调试利器-中数据断点GDB中支持数据断点的设置watch命令用于监视变量是否被改变(本质为硬件断点)watch命令的用法:watch var_nameGDB中的内存查看GDB中可以检查任意内存区域中的数据命令语法:x /Nuf expressionN - 需要打印的单元数u - 每个单元的大小f - 数据打印格式比如: x /4bx 0x804a024 :打印出以0x804a024地址为首的连续4个byte,并且以16进制呈现x命令中参数u对应的单位| 格

2021-06-07 22:17:35 107

原创 调试利器GDB-上

调试利器GDB-上什么是GDB?GNU项目中的调试器(gnu debuger)能够跟踪程序的执行,也能够恢复程序崩溃前的状态为什么需要GDB?软件不是一次性开发完成的(是软件就有bug,是程序就有问题)调试是软件开发过程中不可获取的技术(调试工具也很重要)GDB的常规应用自定义程序的启动方式(指定影程序运行的参数)设置条件断点回溯检查导致程序异常结束的原因(需要Core Dump)动态改变程序的执行流(定位问题的辅助方式)GDB的启动方式直接启动

2021-06-07 20:37:35 119

原创 stm32F103c8 keil移植FreeRTOS时内存不够

stm32F103c8 (flash 64k、ram 20k)keil移植FreeRTOS时内存不够linking....\Objects\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching led.o(.data)..\Objects\Template.axf: Error: L6406E: No space in execution regions with .ANY sele

2021-06-07 00:51:09 818 1

原创 使用malloc函数出现段错误-一级指针-二级指针

使用malloc函数出现段错误typedef struct{ int top; int tail; int* stk;}Queue;typedef struct { Queue* In; Queue* Out;} MyStack;void EnterQueue(Queue* obj,int x){ obj->stk[obj->top]; obj->tail++;}int ExitQueue(Queue* obj)

2021-06-07 00:48:31 1277

原创 小马哥四轴代码解读-I2C-mpu6050篇

小马哥四轴代码解读-I2C-mup6050篇I2C通信I2C通信可以一主多从也可以多主多重(这个还不是很了解),一主多从,首先你得知道从机的地址,然后主机带着从机的地址在总线上广播,who is 这个地址,这个地址的从机就会响应小马哥的四轴代码中用的是IO模拟的I2C通信,但是芯片中是有硬件方式的I2C通信,但是据说有bug。通信的大致过程如下:先拿到mpu6050的地址0x68,先发地址找到主机之后在发mpu6050的寄存器地址进行数据的读获写操作 。初始化SCL SDA引脚,SCL

2021-04-01 15:15:43 1363

原创 小马哥四轴代码解读-SPI-flash篇

小马哥四轴代码解读-SPI-flash篇SPI通信SPI是一种高速的、全双工、同步的通信总线,主要应用于EEPROM、FLASH、实时时钟、AD转换器和etcSPI内部结构图:SPI接口总共有4条线:MISO、MOSI、SCL、CS要根据stm32的芯片引脚进行定义,如下图:小马哥实验中用的是SPI2,要用到PB13、PB14、PB15SPI 主要特点有: 可以同时发出和接收串行数据; 可以当作主机或从机工作; 提供频率可编程时钟; 发送结束中断标志; 写冲突保护; 总线竞争保护等。下

2021-04-01 10:52:20 1412

原创 阿里云-设置告警输出规则

首先得在场景联动中设置告警输出然后你就可以在告警列表中看到告警信息可以配合这篇文章一起看:https://blog.csdn.net/dengqiangjiayou/article/details/115320659

2021-03-30 11:13:30 561

原创 设置钉钉机器人温度过低报警

https://help.aliyun.com/document_detail/106247.html首先下载钉钉,然后按照上面链接操作即可然后你就可以在钉钉上接收到消息了!

2021-03-30 11:10:51 324

原创 阿里云触发消息到数据-场景联动

这篇博客实现的功能就是:加入你的是温度传感器,当温度超过30度时,就触发场景联动,触发场景联动之后,加入温度过高你要启动电机把电机的转速调到100(调到0就是关),然后拿到数据后就进行判断启动电机,进行降温,整个过程如下:首先你得有温度整个属性,同时也要有电机实际转速整个属性在哪里设置呢?如下:然后你就有电机实际转速这个属性了然后在场景联动中设置:你也可以在告警关联那里设置,这个规则触发时,它会发送一条短信或者邮箱给你(你得在告警那里设置好联系人和邮箱甚至钉钉号都可以)得到的消息如下

2021-03-30 09:37:53 635 1

原创 快速上手gitbash

快速上手gitbashgit可以干啥?git简单来说就是做一个备份,防止你修改文件后对文件造成损伤而不能打开你修改到一定程度后想撤销但是不小心保存了,保存后是不能撤销的,你不得不手动进行备份[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zb7hVX5m-1616060561722)(C:\Users\SZU_DQ\AppData\Roaming\Typora\typora-user-images\image-20210318172733216.png)]因此用gi

2021-03-18 17:44:56 194

原创 win10OneNote登录微软 账号登陆出现错误码0x80190001

**主要是Internet Explorer缓存的问题,解决办法如下:在Internet Explorer浏览器的右上角点击设置,打开“Internet选项”在“Internet选项”界面,进入“常规”,单击“删除”,再点击“确定”,缓存文件就已经全部删除在“Internet选项”界面,进入“高级”, 单击 “重置”,即可**参考文章:https://answers.microsoft.com/zh-hans/windows/forum/windows_10-security/windows-1

2021-03-11 17:23:55 4966 1

原创 小马哥robofly四轴无人机代码解读:NRF24无线通信一对多通信-无线传参

首先献上NRF24L01的中文开发手册:https://pan.baidu.com/s/1exzhUFWcM6Q4R9JpYWnaYwNRF24无线通信最多可以发32个字节,因为它是无线的所以感觉很便捷。无线传参传输完rol、pit、yaw、thr、alt等值之后还有剩余的空间,可以利用起来。比如,无线调参,通过串口发送最先调的内环PID值给遥控器,然后遥控器通过NRF24传输给无人机进而改变无人机的PID值,方便调参。但是我在进行操作的时候写入flash里面,写一次经常不回成功,要写入2次或以上,有时还

2021-03-07 03:11:39 3823

原创 小马哥robofly四轴代码解读:PWM电机输出

代码主要在这个文件里:C:\Users\DQ_SZU\Desktop\RoboFlyDEMO\Drive\src\motor.c我们要利用mos管的特性,定义4个引脚复用推挽输出,同时要注意每一个引脚对应的时钟,接下来就是定义TIM3作为PWM波输出的计数器,通过其4个通道进行输出:TIM_OC1Init(TIM3,&TIM_OCInitStruct); TIM_OC2Init(TIM3,&TIM_OCInitStruct); TIM_OC3Init(TIM3,&TIM_OCIn

2021-03-06 03:10:12 1060

原创 小马哥robofly四轴无人机代码解读:定时器初始化

Stm32F1定时器的基本知识:看一下常用的控制寄存器1:TIMx_CR1(16位)其实我们主要用库函数来实现,不会去太关注寄存器怎么操作,就行HAL库一样,不过要想深入还是得有所了解,特别是在debug的时候,debug窗口几乎都是寄存器里面的值* 函 数:void TIM_Init(void)* 功 能:TIM4初始化为1ms计数一次*备 注:更新中断时间 Tout = (ARR-1)*(PSC-1)/CK_INTvoid TIM_Init(void){ TIM_TimeB

2021-03-06 02:54:40 723

原创 小马哥robofly四轴气压计定高的不完全解读

我看过正点原子的定高算法,好像是直接用气压计测量得到的高度作为反馈进行,而小马哥的robofly是结合气压计获得的高度和运动情况下获得Z轴的位移2者结合来获取高度,但是2者结合的过程看得一知半解,下面仅提供思考的思路,仅做参考,互相学习。(其实robofly并没有定高功能,或者说定高仅是通过单级PID进行控制)nav_t nav; //NED frame in earthextern uint8_t AccbUpdate;uint8_t Altitude_mode = 0;float Alti

2021-03-05 16:49:44 4574 7

原创 小马哥四轴robofly气压计定高解读(1)-气压计获取数据

FBMTYPE FBM; //首先定义一个结构体用来结合FBM返回的数据计算高度uint8_t ALTIUDE_OK = 0,ALT_Updated = 0;float RPFilter;下面是一些函数**uint8_t FBM320_WriteByte(uint8_t reg,uint8_t data):写一个字节到FBM320寄存器uint8_t FBM320_WriteMultBytes(uint8_t reg,uint8_t len,uint8_t *buf):从指定寄存器写入指定长

2021-03-05 00:42:06 2772 6

原创 入门物联网需要服务器

物联网小白入门需要一个服务器,由于之前没有接触过服务器的相关知识,比较陌生,在某个网页上得知有的服务器是免费的,叫阿贝云服务器,当然世上没有免费的东西。我现在就给它写一个引流的文章,然后我可以续5天。...

2020-07-30 19:30:51 803

原创 安卓手机爬虫Charles出现乱码怎么解决?

我们用手机进行爬取APP时,进行参数配置时会出现下面情况:百度:1.![不行,链接直达:](https://img-blog.csdnimg.cn/20200304000921537.png)2.![灵感,链接直达:](https://img-blog.csdnimg.cn/20200304000956443.png)于是,你如果想爬取京东上的商品信息,就要设置成相应的api.m.jd.c...

2020-03-04 00:17:32 525

FBM320数据手册.pdf

FBM320数据手册

2021-03-05

单片机系统中应用的几种数字滤波方式_杨剑.pdf

单片机数字滤波常见的方法,入门级别的

2021-03-05

STM32CAN通信程序参考.zip

STM32CAN通信代码,可以参考学习,代码讲解了STM32开发板中的can通信,对初学者比较友好,而且附有相关注释。

2020-07-27

模拟电路设计实验全部.wmv

模拟电路实验设计

2020-04-22

1.1概率论的基本概念.pdf

1.1概率论的基本概念.pdf,概率论课件

2019-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除