- 博客(36)
- 收藏
- 关注
原创 51单片机(DS18B20 数字温度传感器)
DQ 引脚为开漏输出结构,无法主动输出高电平;搭配上拉电阻后,主机和传感器全部释放总线时,总线稳定维持高电平,是单总线正常通信的必要电路。通信,半双工、串行异步传输,仅需一根 GPIO 信号线 DQ 即可完成主机与传感器的数据交互。程序逻辑:逐位读取字节最低位,分别调用写 0 / 写 1 时序,循环移位发送完整 8 位数据。形式存储,通过 DQ 总线串行向外发送。
2026-07-14 18:16:38
346
原创 51单片机(UART 串口通信)
主机:通信发起方,拥有通信控制权从机:不能主动发数据,仅响应主机指令起始码 地址码 功能码 数据位1 数据位2 校验码 结束码起始码:0xAA;结束码:0xBB地址码:区分多台从机功能码:设备控制指令校验码:CRC / 累加和校验。
2026-07-13 18:04:29
250
原创 51单片机(2)
外部中断是由单片机外部引脚(INT0对应P3_2,INT1对应P3_3)上的电平变化(如下降沿、低电平或上升沿)所引发的中断。当引脚检测到设定的电平跳变时,会向CPU发出中断请求。
2026-07-12 21:15:37
279
1
原创 51单片机(1)
3.51 常用晶振:12.0000MHz、11.0592MHz。定义:有固定地址、可直接操控硬件的存储空间。2.频率与时间互为倒数 T=f1。1.主频:CPU工作频率。
2026-07-09 18:36:49
236
原创 TCP并发服务器和 Linux常用IO模型
TCP并发服务端:多进程 安全、资源开销大、并发量小多线程 相对进程资源开销小,相对并发量大线程池 提前创建好大量线程管理起来,避免反复创建线程带来时间消耗 生产者--消费者 设计模式IO多路复用 文件 --->fd 对多个文件描述符的监测,复用一个进程。
2026-06-24 17:25:32
166
原创 Linux网络编程-续
TCP(Transmission Control Protocol):传输控制协议(流式套接字)(传输层)1. TCP特点面向数据流面向连接安全可靠的传输协议TCP机制复杂2. TCP机制三次握手:TCP建立连接的时候需经过三次握手,确保通讯双方都已经准备就绪。四次挥手:断开连接,确保通信双方在断开连接前都已经收发数据结束 ,可以由客户端发起,也可以由服务端发起3. TCP编程流程:建立连接connect监听:listen接收客户端:accept接收数据recv。
2026-06-18 17:09:02
237
原创 Linux网络编程
介绍:OSI模型: open system interconnect 理论模型 1977 国际标准化组织 各种不同体系结构的计算机能在世界范围内互联成网。127.0.0.0 回环地址。子网掩码:255.0.0.0 126*2^24。子网掩码:255.255.255.0 2^8。子网掩码:255.255.0.0 2^16。网络位(网段):表示当前主机所在的网段。主机位:是当前网段的第几台主机。端口号:区分同意主机上的不同网络进程,16。域名:检查当前主机和目标主机是否网络联通。
2026-06-18 16:54:59
264
原创 进程间通信机制(IPC)
进程间空间独立,不能直接通信,数据共享需要使用IPC机制。无名管道:只能用在具有亲缘关系的进程间通信。管道的特点:读阻塞:当读写端都存在时,从管道中读数据,管道为空时,发生读阻塞写阻塞:当管道读写段都存在时,向管道中写数据,管道满时,发生写阻塞管道破裂:当读端关闭,向管道中写入数据时,发生管道破裂(异常)读返回0:当写端关闭,读管道时,管道中有数据则读出数据,没有数据,则读不发生阻塞,直接返回0。
2026-06-17 18:16:07
226
原创 多任务并发-进程
进程是正在执行的程序,执行过程中需要消耗CPU和内存。 进程是操作系统资源分配的最小单位。程序:进程在被创建的时候,操作系统需要为其分配0-4G的虚拟内存空间。任何操作系统进程状态切换图:三态图Linux操作系统进程状态切换:Linux进程状态: 进程执行结束,需要对进程对应的资源空间进行回收,否则,该进程进入僵尸态。子进程:父进程产生的新进程称为该父进程的子进程 查看指定进程的族谱关系 pid_t fork(void)创建新进程1.子进程在创建时,完全拷贝父进程0-3G的虚拟内存空间,包含
2026-06-04 19:23:13
207
原创 文件编程-续
errno:全局的错误码变量,程序运行过程中,会将对应的函数调用出错信息保存在这个变量中。errnum:错误码s:自定义的错误信息name:目录名dirp:目录流指针dirp:目录流指针pathname:目录名mode:对目录的读写执行权限 例:0777
2026-06-04 18:59:16
206
原创 文件编程-文件IO
Linux内核向应用层提供的文件操作方法,属于Linux系统调用。int open(const char *pathname, int flags)int open(const char *pathname, int flags, mode_t mode)打开一个文件pathname:要打开文件的文件名flags:打开方式与标准io比较:mode :当前用户、同组用户、其他人对文件的读写执行权限*当flags标志位中存在O_CREAT方式,则必须增加mode参数 例如:111 111 1
2026-06-02 18:29:33
177
原创 文件编程-标准IO
保存数据,掉电数据不丢失,保存在硬盘(外存)linux中一切皆文件(硬盘、鼠标、键盘、显示器、普通文件....b c d - l s p七种文件类型块设备文件(硬盘)字符设备文件(鼠标、键盘、显示器、外设传感器...目录文件(文件夹)普通文件(链接文件(类似于快捷方式)套接字文件(网络通信)管道文件(进程间通信)1.Linux下的两种文件操作方式标准IOC标准库提供的对文件的操作接口(库函数)如printfscanf文件IOLinux。
2026-06-01 19:43:35
208
原创 数据结构-双向链表
/链表中存储的数据类型int id;int score;//链表结点类型//双向链表存储的数据//指向前驱结点的指针//指向后继结点的指针}DNode_t;//双向链表对象类型//头结点指针int clen;//当前结点个数}DLink_t;#endif。
2026-05-28 20:17:08
158
原创 构造数据类型
结构体的声明:struct 结构体名具体的属性值1;具体的属性值2;具体的属性值3;具体的属性值4;具体的属性值5;// 分号不可省略// 只是声明,不开辟内存空间。int year;int mon;int day;int age;int heigh;//struct 结构体名 变量名;//开辟内存空间struct 结构体名 数组名[整形常量];定义共用体,也叫联合体。和结构体的定义,初始化,访问元素,都一样的。只有一处差异,开辟内存空间有差异。
2026-05-24 21:57:05
362
原创 C语言day15
一个函数被当作参数 ,传递给另外一个函数。被传递这个参数(函数指针,回调函。方便后期代码的扩展。主调函数只是传参(函数)作用:取别名, 给数据类型取别名。
2026-05-13 21:29:41
37
原创 C语言day11
实参把参数数据的内容通过赋值运算符给形参的形式。数据内容是相同的,实参的内存空间,和形参的内存,是独立。实参传递变量的内存地址值。即可以读实参的数据的值,也可以修改。3.递归的层次不要太深,会消耗大量的内存,可能导致程序崩溃。1.在函数内部,自己调用自己的函数调用,被称为函数的递归。值传递只能读取实参的值,不能就行修改。即使函数的调用,即使没有参数,括号也不能省略。2.一维字符数组的传参, 本质是地址传递。应用,回溯类,逆向思维的问题的。2.需要设置合理的退出条件。参数类型的需要匹配。
2026-05-08 19:56:10
29
原创 C语言day10
函数返回值 函数名参数类表函数体;return x;参数列表:数据类型形式参数1 ,数据类型形式参数2,数据类型形式参数3 )函数返回值:数据类型,函数在调用完毕后,一般情况都是有结果值。这个值就有数据的类型。如果函数的返回值设计为void,那么函数调用使用后,没有结果,也就没有数据。1.如果设计函数的时候,没有给定函数返回值的,默认是int。如果确实没有什么需要返回的,可以是void。2.如果函数的执行流程,运行到,return。
2026-05-07 19:28:27
371
原创 C语言day8
类型 数组名[整形常量];整形常量:数组的容量,表示可以储存多少个字符,类型 char。c语言规定,字符串必须使用\0 作为结束标准。如果你要在数组中储存一个 hello , hello\0 共计6个字符空间。
2026-05-05 20:45:18
46
原创 C语言day7
数组遍历一次 ,会找到最大值,并存储在数组的最后。如果前面的数大,交换两数 ,内层循环 ++用来存储多个数据,多个变量。2.连续性内存空间连续存放。1.单一性数据类型相同。3.有序行元素是有序的。相同数据类型,有限个。
2026-04-29 18:17:02
44
原创 C语言day6
switchswitch多分支情况((1)switch 后面必须是一个整形表达式(2)case后面是整形的常量,不能是变量或表达式(3)switch 的整形表达式和case 后面整形的常量做等值比较。如果相等执行对应的case,直到break 停止。如果都没有匹配中,执行default循环控制代码执行的时候,有多次执行同一段代码需求事先执行需要运行几次 for未知执行次数的话while循环三要素:(1)循环控制变量需要初始化(2)需要检测循环变量,是否继续循环。
2026-04-28 21:09:43
35
原创 C语言day4
include系统提供的输入输出函数功能的说明函数接口,包含函数名,函数的参数传入一个需要输出到屏幕的字符并显示;putchar(c);从终端接收一个字符;char c =0;getchar();//()不可以省略,表示函数的调用调用过程中,需要保证,参数匹配问题。参数的数据类型,个数要对上,大部分函数使用完后,是有结果的。( 只要不是void类型的函数)向终端格式化输出字符串从终端按照格式输入数据int a = 10;
2026-04-26 15:15:02
358
原创 C语言day3
1.变量中的值,可以发生变化的原因。是因为在定义变量的时候,系统会给变量开辟内存空间。2.初始化含义:在变量内存空间开辟的同时,装入初始值。变量定义后,如果没有给初值的,变量里就存储了随机值。变量在定义的时候,最好都给初值。
2026-04-24 20:28:07
211
原创 C语言day2
1.可执行程序(a.out)在计算机的外存中存储计算机会把a.out中的内容代码数据加载到内存中3. cpu就会从内存中读出代码数据,对数据进行操作。十进制转二进制对10进制数一直除2,直到商为0。并且记录余数,逆序组成的序列就是对应的二进制数十进制转八进制对10进制数一直除8,直到商为0。并且记录余数,逆序组成的序列就是对应的八进制数十进制转十六进制对10进制数一直除16,直到商为0。
2026-04-23 20:39:40
238
原创 C语言day1
启动终端 ctrl+alt +tctrl+shift+ + 终端字体放大ctrl+shift+ - 终端字体缩小ctrl+shift+c 终端复制文本ctrl+shift +v 终端粘贴文本。
2026-04-23 18:20:12
488
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅