自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 mqttfx操作

注意:mqttfx软件去订阅topic实际是向阿里云发送设备订阅报文,设备实际上是也订阅了。6.接着去阿里云产品中复制第二部,获得需要发布的topic。选择subscribe,将需要订阅的报文复制进去。7.我们使用json格式发送报文。显示这个即表示连接服务器成功。可以看见刚刚发送的报文内容。2.在设备中点击连接参数。5.点击connect。

2024-05-26 23:34:43 252

原创 keil 51 操作

需要引脚tx,rx,5v,GND,注意,单片机不要再额外供电,让串口给单片机供电就好,软件点击烧录,然后拔掉5v,再插上5v就可以烧录了。51内部自带串口ISP下载,不需要外接ISP电路。1.STC烧录器操作。

2024-05-26 23:32:28 375

原创 算法实战总结

1. 假设我们有一个整数数组 numbers 和一个目标值 target,我们的任务是找到数组中两个元素的和等于目标值。

2024-05-26 23:26:50 351

原创 计算机系统

但是内存读写对于cpu还是太慢,高速缓存充当了内存和cpu之间的数据存储,用于存储最近或频繁访问的数据。时间局部性: 当你编辑文本时,通常会在短时间内多次访问相同的文本行或字符。这种逐个访问的方式表现出了空间局部性,因为你依次访问相邻的数据。1.数据局部性: 在许多应用程序中,存在数据访问的局部性原则。这意味着在某一时刻,程序倾向于多次访问相同的数据或临近的数据。当程序访问某个数据后,有较高的概率在不久的将来再次访问相同的数据。当程序访问一个数据项后,有较高的概率在接下来的访问中访问在内存中相邻的数据项。

2024-05-26 23:26:15 428

原创 面试硬件方面学习笔记

通常用来描述信号或通信通道的频率范围,带宽越宽,信号中包含的频率范围越广,通常意味着可以传输更多的信息或数据。重点:比如产生一下1hz的信号即表示1,产生一下2hz的信号即表示0,如果信号的带宽比较大大,即包含1hz~2hz,那么,多路传输(例如频分多路复用)时就可以同时接收多个信号(0和1),但是如果在典型的通信系统中,接收端一次只能接收一个特定频率范围内的信号。消耗带宽通常会影响网络中的其他通信,因为网络连接的总带宽是有限的,如果某个通信占用了大量带宽,可能会降低其他通信的速度或质量。

2024-05-26 23:25:37 261

原创 算法学习笔记

如果使用哈希表,可能要创建一个大数组是hash1,然后元素值是几,就将hash1的几号索引赋值几,这样就建立好最简单的哈希表了,我现在和数组2进行比较,先比2看看hash1中是不是0,好,是0,说明数组1中没有2,再比4,看hash1中的索引4有没有数值,有的,说明数组1里面有4,以此类推,时间复杂度是(n2)也就是(n)常数级别。原理是数组的索引与数值有一个换算关系,通过换算关系,直接找到该数值的索引号,即可读取索引号中的数据。有两个数组,[1,4,7]、[2,4,6],现在找数组2比数组1多哪些元素?

2024-05-26 23:25:06 348

原创 芯片内核知识

指令并行,(指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术)但是增加了四组寄存器,每一个流水线级数内部都有各自的组合逻辑数据通路,彼此之间没有复用资源,因此,其面积开销是比较大的,但是由于可以让不同的流水线级数同时做不同的事情,而达到流水的效果,提高了性能,优化了时序,增加了吞吐率。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。

2024-05-26 23:24:31 399

原创 python 学习笔记

13.字符串的格式化:print("a=%d,b=%f" %(a,b)) %d 和 %f 是格式化说明符,它们告诉Python如何将变量 a 和 b 的值插入到字符串中。%(a, b) 是一个元组,包含要插入的值,它按顺序对应于格式化说明符的位置。更推荐使用这个方式: print("a={},b={}".format(a,b)) 或者 print(f'a={a},b={b}')12.\字符的使用: print("\\n是换行,\\t是缩进") 输出: \n是换行,\t是缩进。

2024-05-26 23:23:22 208

原创 git 学习

40.keil工程里面有很多链接和其他烧录用的文件,对于我们开发来说不需要,这个时候就可以 将这些文件设置到.gitignore文件里面,注意,哪些链接等文件,我们再次编译keil的时候,keil就会生成我们本次代码的链接文件,所以说,代码如果是从某个提交上下载下来的,关键h和c文件肯定都是被跟踪也就是会被提交也就是最新的,但是文件夹里面的链接等文件可能不是最新的,因为这些就算改变文件也不会被提交,没关系,我们拿到c和h文件后用keil再编译下,链接和烧录等文件就可以使用了。

2024-05-26 23:22:08 626

原创 USB的笔记

4、控制传输:最重要的也是最复杂的传输,控制传输由三个阶段构成(初始设置阶段、可选数据阶段、状态信息步骤),每一个阶段可以看成一个的传输,也就是说控制传输其实是由三个传输构成的,用来于USB设备初次加接到主机之后,主机通过控制传输来交换信息,设置地址和读取设备的描述符,使得主机识别设备,并安装相应的驱动程序,这是每一个USB开发者都要关心的问题。答案七:标准的USB设备请求命令是用在控制传输中的“初始设置步骤”里的数据包阶段(即DATA0,由八个字节构成),请看回问答四的内容。

2024-05-26 23:20:40 403

原创 esp wifi操作

AT+MQTTPUB=0,"/sys/a1VikqFQOO8/finger/thing/event/property/post","{\"params\":{\"doors\":0}}",1,0 //发布Topic。

2024-05-26 23:18:08 337

原创 树莓派操作

注意,电脑和树莓派要使用ssh就要连接一个局域网,也就是一个网段,两者是应该可以ping通的(SSH连接的原理就是局域网内的TCP和UDP通信,所以树莓派和Windows主机都要连接到同一个路由上)这将返回一个网络 ID,你将在后续步骤中用到这个 ID(在这个例子中,我们假设返回的 ID 是 0)。为了在树莓派3中通过GPIO使用串口,我们必须将分配给蓝牙使用的硬件串口与普通串口进行对换。7.树莓派如果没有使用ssh,使用硬件串口一般还要接线接串口助手,没有使用供电口做串口。

2024-05-26 23:16:45 914

原创 对于内存存储区的整理

网上搜了很多资料,也看了书,画了一个清晰版本的思维导图。

2023-10-15 20:12:17 44 1

原创 mqttfx接入阿里云操作

注意:mqttfx软件去订阅topic实际是向阿里云发送设备订阅报文,设备实际上是也订阅了。6.接着去阿里云产品中复制第二部,获得需要发布的topic。选择subscribe,将需要订阅的报文复制进去。7.我们使用json格式发送报文。显示这个即表示连接服务器成功。可以看见刚刚发送的报文内容。2.在设备中点击连接参数。5.点击connect。

2023-10-10 09:17:06 108 1

原创 leetcode刷题笔记(c语言)

4.函数要返回一个线性表作为结果,在函数中要用malloc申请这个线性表内存,不能直接申请数组,因为函数结束这个数组会被销毁。2.接上一条,如果不在输出数组末尾写上'\0',则会报地址错误,可以用msmset,或者结束了加'\0'1.力扣如果要返回数组指针,该数组首元素不能是空,否则系统认为数组内全是空。10.malloc申请的内存就算不返回用也要在末尾加'\0',不然报错。6.int型变量如果使用负值,就报错,类似地址溢出的错误。11.a[10]是定义了有十个元素的数组,元素为从0~9。

2023-10-10 09:13:50 141 1

原创 esp wifi的AT开发

例AT+MQTTUSERCFG=0,1,"NULL","finger&a1VikqFQOO8","07f097f059daf94f22c4b1f6b790daeee9aca4054aca7a875da280d8fec59d71",0,0,""7.AT+MQTTPUB=0,"/sys/a1VikqFQOO8/finger/thing/event/property/post","{\"params\":{\"doors\":0}}",1,0 //发布Topic。例AT+MQTTCONN=0,"

2023-10-10 09:11:30 70 1

原创 FreeRtos 学习笔记

8.一个任务即一个函数,被创建时会为其分配一个堆栈一个任务控制块,堆栈存放函数的现场,保存临时变量等,而tcb用于保存任务的信息,如名字,在那个队列里,任务函数栈顶地址等。7.在penasv中进行任务的切换,具体为将tcb指针入栈,系统寄存器入栈,更新tcb指针,将出栈到寄存器。16.当低优先级任务发送队列消息后,处于等待接收列表的高优先级任务立刻从阻塞态到就绪列表,抢占低优先级任务。1.所有的列表:就绪态任务列表,阻塞态任务列表,挂起态任务列表,事件列表,等待删除列表,(还有吗?6.有32个就绪列表项。

2023-10-10 09:09:26 30 1

原创 FreeRtos 常用函数

如果不按按键,不会释放信号量,任务二的获取信号量函数会将任务二阻塞,任务二不运行了(portMAX_DELAY表示死等),灯不闪,串口不打印字符,任务一为就绪态正常运行,当我们按下按键,信号量被释放代表有资源了,在xSemaphoreGive函数中实现任务调度,任务二优先级大于正在运行的任务一,任务二将任务一抢占,任务二处于就绪态,运行任务二的任务灯闪和串口,然后再回任务一发送串口。(5) vTaskDelete(任务句柄);//删除任务函数,和动态删除一样(需要手动删除任务堆栈和TCB空间?

2023-10-10 09:05:10 173 1

原创 linux 命令学习

f:强制删除,即使文件或目录是只读的,也会删除,不会提示用户进行确认。-a 或 --archive:保留文件属性(包括权限、所有者等),通常用于备份目录。-i 或 --interactive:在复制前进行交互式确认,避免覆盖文件。-r 或 -R:递归删除目录及其内容。-r 或 --recursive:用于递归地复制目录及其内容。-u 或 --update:仅复制源目录中新于目标目录的文件。模式:权限模式,用于指定要为文件或目录设置的权限。r:读取权限,允许查看文件内容或列出目录中的文件。

2023-10-09 23:12:27 19 1

原创 linux 学习笔记

18.临界资源" 是指在多个并发进程或线程中被共享的资源,在任何给定的时刻,只有一个进程(或线程)能够访问临界资源,而其他进程或线程必须等待,临界资源的管理通常需要使用同步机制,如互斥锁(mutex)或信号量(semaphore),以确保在任何时刻只有一个进程(线程)能够访问该资源,防止多个进程(线程)同时修改或读取资源,避免数据的不一致性和竞态条件。内核执行进程的任务函数,在这期间,硬件发现错误或者用户输入等触发中断,在中断中发送信号给某个进程,接着返回未执行完的进程,并且内核查看是否收到了信号。

2023-10-09 23:10:11 40

原创 C 语言的知识总结

每个c文件都是分别单个编译,如果有源文件中编译器不知道的变量,就需要引用头文件告诉编译器,比如应该在头文件中定义结构体,如果只是声明结构体,编译器不知道结构体的内存分配。比如有个动物属性,胎生,体温温度,这是属性,哺乳动物类拥有该属性,对于狗这个类,哺乳动物类属于狗这个类的父类,哺乳动物是狗的父类,狗继承哺乳动物类的属性。对于大小不一样的内存块,比如函数,不同菜单显示函数大小不一样,我们可以将函数的地址传入结构体,因为不管函数怎么变,地址都不会变化。该变量为常变量,常变量会占内存,但是不可修改。

2023-03-17 01:05:46 55

原创 C 语言学习中感悟

1.学习了一段时间c语言,遇到各种各样的语法,心里明白是怎么使用,功能是什么,但是呢,总觉得隔层纱,最终决定,学习汇编,从原理理解c语言,这样写出来的代码心里踏实,加油!

2023-03-17 00:39:18 38

空空如也

空空如也

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

TA关注的人

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