- 博客(97)
- 收藏
- 关注
原创 26、江科大stm32视频学习笔记——I2C读写W25Q64
CS(片选):PA4 DO(从机输出):PA6。CLK(时钟):PA5 DI(从机输入):PA7。1、SPI.c(初始化寄存器,实现读取一个字节的功能)3、本次软件模拟和硬件模拟使用同一个电路图,方便切换。2、硬件模拟的SPI:要按以下方式连接。1、软件模拟的SPI:线可以任意接。二、软件SPI读写W25Q64。
2024-01-21 22:20:14
1379
2
原创 (3)Makefie:C语言编译标志、通配符、CFLAGS、LDFLAGS、LDLIBS
Makefie:C语言编译标志、通配符、CFLAGS、LDFLAGS、LDLIBS、-Wl,--start-group 和 -Wl,--end-group、$(LDLIBS_$@)、$^和$@的使用、句子前面加@:不输出到终端、目标文件依赖于头文件、%_output的使用、%_only
2023-07-30 13:59:05
1605
原创 AT指令介绍
1、用途:用来控制TE(TerminalEquipment)和MT(Mobile Terminal)之间交互的规则,如下图所示。在GSM网络中,用户可以通过AT命令进行呼叫、短信、电话本、数据业务、传真等方面的控制。(AT指令只关注错误的情况,正确的情况不需要额外的操作)执行AT命令(不需要参数,例如查询版本号等)AT+CMEE=1表示错误时返回具体错误信息。AT+CMEE=0表示返回ERROR。显示AT命令设置的合法参数值有哪些。查询当前AT命令设置的属性值。2、AT指令的4种命令。
2023-07-23 23:47:58
1266
原创 git的使用
git config --global user.email test@runoob.c(邮箱)Git init newrepo(newrepo下会出现一个.git的目录,指定目录作仓库)①git reset --soft HEAD^1(回复最近提交的那个文件到缓存区)以上命令是把.c结尾的和readme文件提交到仓库中。比较文件的不同,即暂存区和工作区的差异。清理工作目录中未被版本控制的文件和目录。二、仓库创建、拷贝、提交、配置。将文件从暂存区和工作区中删除。(提交缓存区到本地仓库)
2023-07-20 00:27:08
131
原创 shell合成升级包的流程
2、检查是否存在一个名为$unshname ,如果存在,则执行该文件以卸载旧版本的软件。文件的第一行之前,并将修改后的内容保存回${name}/$configname中。3、将压缩包当中的安装文件提取到临时文件中。,如果不存在,则创建该路径。5、安装库文件和工具文件。所以,这个命令的作用是将。1、定义一些名称和变量。4、检查是否存在路径。
2023-07-18 01:30:38
332
原创 1、shell脚本的基本知识——变量、字符串、循环
变量和赋值、引号、管道、重定向、字符串操作、测试语句、if、case、for循环语句、ifeq
2023-07-17 00:16:41
1032
原创 1、shell语言
5、管道:ls -l | wc当中,ls -l收集当前目录下文件的信息,然后送给管道,wc从管道读出来,计算出行数、单词个数和总字符。ls -l 1>a.txt #ls -l命令原本要输出1号描述符(即在命令行中输出变成保存在a.txt中)赋值号两边没有空格,最好有双引号(词组必须有双引号),变量跟C语言规则类似。双引号(将单词组括起来,不然第二个单词会被误为命令)(“ ”)‘反引号(` `):若有该符号,则date表示时间,没有则为单词。6、一般0:标准输入,1:标准输出,2:标准出错。
2023-07-13 01:11:29
266
原创 05 通信协议
•I2C:双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网;UART:通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART发送器、UART接收器组成,硬件上两线,一收一发;•SPI:高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件3~4线;•USB通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。
2023-04-05 22:20:35
257
1
原创 04、C语言(杂)
内存泄漏是指向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。内存溢出就是要求分配的内存大小超出了定义时所预设的内存大小,系统不能满足需求,于是产生溢出。3、ISR应该短且有效率,在ISR中做浮点运算不明智。6、*p++和*(p)++的区别。1、ISR不能有参数。
2023-04-05 21:04:10
178
原创 03 网络编程
创建通信用文件描述符(socket)-->设置端口号和IP地址(为绑定做准备)-->绑定(bind)-->接受和发送消息(sendto && recvfrom)-->关闭文件(close):创建通信用文件描述符(socket)-->设置端口号和IP地址-->接受与发送消息(sendto && recvfrom)-->关闭文件。:创建通信用文件描述符(socket)-->设置端口号和IP地址-->发起连接请求(connect)-->-->发送与接收消息(send/recv)-->关闭文件(close)
2023-04-05 20:57:09
112
原创 2、网络编程——UDP
用户数据报协议,是一种不可靠无连接的协议,在数据发送前,不需要提前建立连接,可以更高效传输数据(发邮件)(2)在收到数据,给出应答比较困难的网络中。5、recvfrom(从UDP中接收数据)(4)发送信件(内容与地址信息一起发送)4、sendto( 发送数据到UDP)(3)将地址与心想绑定(bind)(4)坐等来信(recvfrom)(1)创建一个邮箱(socket)(1)创建邮箱(socket)2、bind(绑定地址)(1)发送小尺寸数据。1、服务器(接收端)2、客户端(发送端)(2)设置发送的地址。
2023-04-01 21:11:19
189
原创 16、操作系统——条件变量
当有多个线程需要获得同一个资源进行操作的时候,如果当前资源量未空, 那么就需要让所有来 获取资源的线程进入一个条件变量的等待队列中进行等待,等待资源数据到达, 当资源数据到达的时 候条件变量则可以选择从队列中唤醒线程进行读取资源(唤醒可以唤醒一个或多个)。
2023-03-31 22:16:00
490
原创 13、操作系统——posix信号量(无名信号量)
因为有名信号量的线程共享一个内存空间,若要解决进程内部的线程间的同步互斥,需要使用更加轻量化、基于内存的(不再任何文件系统内部)无名信号量,
2023-03-31 16:27:08
368
原创 11、操作系统——线程的属性(3)(压栈、弹栈)
由于线程任何时刻都可能有互斥锁、信号量等资源,一旦被取消很有可能导致别的线程出现死锁,因此如果一条线程的确可能被取消,在取消之前应该用以下的API为可能出现的取消请求注册“处理例程”,让这些例程自动释放持有的资源。
2023-03-31 14:25:20
198
原创 3、操作系统——进程间通信(1)(无名管道(PIPE)和有名管道(FIFO))
操作系统——进程间通信(1)(无名管道(PIPE)和有名管道(FIFO))
2023-03-24 22:32:54
843
原创 2、操作系统——进程转载其他程序、退出、等待
exec函数执行后进程的内存空间有何变化?——会被新的可执行文件重新初始化。exec函数执行后线程后面的语句是不执行的。子进程退出时退出值得取值范围是多少?0- 255 占用了8位一个字节。
2023-03-24 20:31:09
510
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人