- 博客(101)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注

原创 计算机网络学习笔记
计算机网络的概念一、 含义计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。二、组成1、终端系统 /资源子网:提供共享的软件资源和硬件资源(传输的数据、文件等等)2、通信子网:提供信息交换的网络结点和通信线路(光纤、双绞线等等)三、类型(1)按拓扑分类:星型结构、树形结构、总线型结构、环形结构、网状结构(2)按照范围分类局域网LAN、城域网MAN、广域网
2021-11-02 21:47:15
1378

原创 用51单片机做宿舍门禁系统(1)--1602显示
由于时间紧迫,还有其他考试,所以目前只能抽时间慢慢做慢慢更新了,本身就是一个练手项目。1602显示所谓的智能系统,没有显示是万万不能的,所以有一个显示的东西是很必要的,选择1602是因为它抗光而且价格合适,字体大,官方教程也多,是51单片机开发的一款火爆元件。...
2021-10-16 12:25:15
2014

原创 51单片机系列--AD/DA
介绍AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号计算机系统是一个数字系统、离散系统,而我们生活的外部世界是一个模拟系统。为使计算机系统能够了解外部世界,对外部事物进行处理,就必须有一个将模拟量转换为数字量,将数字量转换为模拟量的接口,这就是常说的 A/D和 D/A。硬件电路模型AD转换通常有多个输入通道,用多路选择开关连接至AD转换器,以实现AD多
2021-07-21 21:08:32
7225
9

原创 web前端开发入门笔记(更新中)
前言假期曾上过6节HTML与微信小程序开发基础课,对前端开发有所了解,今天上完大英就开始看了下课程,出乎意料的易于接受,也许是之前打下的基础,但还是系统地学习比较好,毕竟作为一门知识。...
2020-04-08 11:34:27
1864
1
原创 51单片机--定时器
TMOD中取决定因素的是M1、M0两位,TMOD=10,则T1采用方式1,T0采用方式0。1、(2^13-T0初值)2、(2^16-T0初值)3、(2^8-T0初值)51单片机T数是12.
2022-10-09 09:41:14
1793
原创 51单片机--外部中断
外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。例如:ROM BIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等,)以及DOS的系统功能调用(INT 21H)等都是软件中断。51单片机的中断之于单片机系列算是比较少而简单的了,主要分为2个外部中断+2个定时器中断+串口中断,中断表如下。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类。
2022-10-08 16:18:42
4249
原创 嵌入式学习--1线协议(以ds18b20为例)
其本质上还是,发送指令让DS18B20开始采集温度,并将温度值以2进制补码写入到元件的高速暂存器中,然后再将值读取出来,MCU用小端序读取值。1.主机将总线拉高2us,拉低2us,说明读时序开始,再释放总线,以便ds18b20能操作总线,最后延时10us,等待数据稳定。1.主机(MCU,下如是)将总线拉低480us,然后释放总线,等待10us,再判断240us内ds18b20是否将总线拉低。比如跳过ROM,转换温度,读取温度等。主机将总线拉高2us,再拉低60us,再释放总线1us。.........
2022-08-04 09:28:44
605
原创 mosquitto源码分析
前词由于前些天做的mqtt连接云平台项目测试过程中,发现了自身的代码在不良环境下,例如:网络断开、服务器断开的情况下,mqtt客户端无法感知连接已失效,仍然会继续向对端publish success。且在重新连接网络成功后,一下子重新往对端发送在连接失效的时间段内的发送数据,从而造成接收重复。所以,自己去下载了mosquitto的源码,进行了系列分析。但是,由于本身能力有限,也不算很理解,如果有大哥是有了解的,还望私聊一起探索。附上源码地址:https://github.com/eclipse/mos
2022-05-23 15:42:56
1748
1
原创 利用daemon函数创建守护进程
daemon的内部整体流程是啥?daemon函数作为一个函数,在封装好的同时,容易让初学者只知其然而不知其所以然,往往导致bug横生,让人怨声载道。实际上,它的流程可以等效为:1.fork()创建子进程,继承父进程的资源2.setsid()创建会话,让子进程脱离父进程的进程组、会话组。自己开一个新的会话组当领头进程。退出父进程。3.fork()再次创建子进程,禁止打开控制终端。退出父进程。4.chdir()是否改变子进程工作路径。5.umask()设置权限掩码。给子进程能够访问操作用户文件的权
2022-05-15 20:47:56
375
原创 基于树莓派的温度采样项目总结
命令行提取参数getopt_long函数,能够在Linux命令行提取短选项(-开头,与选参数之间隔空)与长选项(–开头连接参数)。它的原型是这样的。#include <unistd.h>#include <getopt.h>int getopt_long(int argc, char * const argv[],const char *optstring,const struct option *longopts, int *longindex);如果只想要提取长选项,
2022-05-14 17:39:16
864
原创 c语言将字符串转换为unix时间
#include <stdio.h>#include <time.h>long int str_to_time(const char *time_str){ struct tm tm_time; long int unixtime; strptime(time_str, "%Y-%m-%d %H:%M:%S", &tm_time); unixtime=mktime(&tm_time); return unixtime;}int main()
2022-05-08 09:27:45
615
原创 关于“E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”报错
执行强制解锁命令sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock
2022-04-12 10:02:23
128
原创 中兴V5S旧手机上搭载小型Linux服务器
来源鄙人是一枚抠抠索索的穷鬼,超级喜欢废物利用。前些天一直在学校和闲鱼上捡坏掉的电子产品回来修了用,这样成本低廉,又可以让自己以最低的成本获得一些可以丰富生活的电子产品。但是毕竟也花了不少钱,然后就想淘部旧手机搞搞,只搞软件就不需要多的钱了嘛,虽然后续也是要加装其他东西,但毕竟不需要太多钱。关于root与刷机root是保证搭载的环境能够以root权限运行以及搭载,如果不root手机的话,可能会启动不了或者安装的过程有失败。刷机是因为本身系统比较卡顿,所以我给刷成小米的miui系统了,很是轻便流.
2022-03-30 10:01:59
492
1
原创 VsCode配置C语言环境
安装MinGW64MinGW64是用来兼容系统与gcc工具的,而gcc是用来编译处理c文件的。下载配置环境变量解压压缩包后找到bin文件夹,复制路径我这里的是D:\MinGW64\bin然后右击此电脑-属性-“高级系统设置”-“环境变量”-“Path”双击Path,新建一个环境变量,将复制的路径放进去然后按确定保存退出。使用Win+R键调出cmd,输入gcc-v查看是否安装成功。安装vscode具体安装过程不多说,都有网上教程。然后点击左边栏目上的第4个,搜索C/
2022-01-04 00:01:52
1169
原创 Ubuntu右上角网络连接图标消失不见且无法上网
依次执行下列命令sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service network-manager startsudo gedit /etc/NetworkManager/NetworkManager.conf将弹出的文本文件,将其中的false改成truesudo service network-manager restart...
2021-12-12 10:31:04
318
原创 算法设计与分析学习笔记
递归与循环求最大公约数–递归#include<stdio.h> int GCD(int a,int b){ int result; if(a%b==0) { result = b; return result; } else { result = GCD(b,a%b); }}int main(){ printf("gcd is :%d\n",GCD(16,40)); return 0;} 循环#include<stdio.h>
2021-11-29 20:13:33
986
原创 C指针笔记
变量实质声明两个变量,其中整形变量i占两个字节,字符型a占一个字节。int i;char a;实际在内存中的映像如图变量赋值赋值给变量,即是将该值赋给相应的地址中i=30;a='t';如此,我们可以通过代码打印查看变量与它的地址#include<stdio.h>int main (){ int i = 39; printf ("%d\n" , i);/*i*/ printf ("%d\n", &i) ;/*i的地址*/ return(0) ;}
2021-11-16 11:11:35
818
2
原创 数据库原理-SQL Server版(期末复习)
数据库的基本概念1.数据(Data)数据是用来记录信息的可识别的符号,是信息的具体表现形式。2.数据库(DataBase,DB)长期存储在计算机内,有组织的、可共享、具有逻辑关系和确定意义的数据的集合。数据库基本特征:1.永久存储 2.有组织 3.可共享 4.冗余度小 5.易扩展3.数据库管理系统(DataBase Management System,DBMS)一种重要的程序设计系统,它由一个相互关联的数据集合和一组访问这些数据的程序组成。主要功能:提供数据定义语言(DDL)、数据操纵语
2021-11-02 16:57:51
1418
1
原创 51单片机读取DH11温湿度传感器数据
dh11.c#include<reg52.h>#include<intrins.h>#include"dh11.h"sbit Temp_data=P3^6; extern unsigned int rec_dat[4];//DHT11起始信号void DHT11_start() { Temp_data=1; DHT11_delay_us(2); Temp_data=0; DHT11_delay_ms(20); Temp_data=1;
2021-10-31 20:31:12
5675
原创 用51单片机做宿舍门禁系统
走向用51单片机做宿舍门禁系统(1)–1602显示用51单片机做宿舍门禁系统(2)–4*4矩阵按键用51单片机做宿舍门禁系统(3)–EEPROM存储
2021-10-17 18:37:49
1498
原创 用51单片机做宿舍门禁系统(3)--EEPROM存储
密码锁修改密码后,需要自我保存,所以这就需要一个小型存储器来存储密码,而at24c01容量足够存储这么少的东西,而且价格便宜,使用的i2c通讯,所以采用。需要注意的是,写入数据需要保持时序一致(5ms一次)i2c.c#include "i2c.h"void Delay10us(){ unsigned char a,b; for(b=1;b>0;b--) for(a=2;a>0;a--);}//SCL线为高电平期间.SDA线由高电平向低电平的变化表示起始信号void
2021-10-17 18:37:22
924
1
原创 用51单片机做宿舍门禁系统(2)--4*4矩阵按键
选用4*4矩阵键盘作为输入,其原理是16个按键进行行列扫描,简化操作。原理图用薄膜键盘代替一下,原理一样。key.c#include "key.h"u8 KeyValue=0;/*延时函数*/void delay(u16 i){ while(i--); }/*判断按键返回值*/u8 Down(){ u8 a=0; GPIO_KEY=0x0f; //复位按钮 if(GPIO_KEY!=0x0f)//有按键按下 { GPIO_KEY==0x0f; s
2021-10-16 17:54:52
1113
2
原创 你问我答--问答机器人
目标:掌控板利用WIFI实现上网,抽取数据库中的题目并通过掌控板自身的无线传输协议,将题目发送至客户端,客户端将回答发送至服务端进行判断。数据库截图(tinywebdb平台)服务端客户端成品图...
2021-10-08 19:44:41
133
原创 嵌入式Linux
who命令显示以下内容:登录名、tty、登录日期和时间ls命令属性功能-a列出所有的文件和目录,包括以“.”号开头的-A列出所有的文件和目录,包括以“.”号开头的(除了“.”和“…”)-F给文件名末尾添加一个标识符(*/=@-d仅列出子目录本身文件操作mkdir属性功能创建目录-p一次创建多级目录rmdir属性功能删除目录-p一次删除多级目录文件拷贝cp /usr/i
2021-10-08 11:01:15
144
原创 与国同庆--单片机小白自制蓝牙避障小车
源码在最后前言国庆假期的前一天中午自己翻到了一张52单片机,想起自己之前只是使用普中科技做好的集成开发板玩,所以就自己找了原理图做最小系统搞。(源自某位老师的指点:“玩单片机只会用开发板是不行的。”,现在搞完了还是挺感激他的,确实认识到位了。)第一轮打击但是第一步的打击没想到会这么快,我找到的原理图网图,居然是某位友友搞错的图,,,以至于我把排阻什么的都焊上去,然后费了好大精神把单片机插进母座,上电没反应。。。因为洞洞板比较贵,又没有吸锡器,就只好在左边补焊了一个最小系统,后果就是又多花了两个小
2021-10-03 09:25:19
3010
8
原创 51单片机串口通信--发送字符、接收字符、发送字符串、接收字符串
uart.c#include <reg52.h>#include "uart.h"#define uint unsigned int#define uchar unsigned chartypedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;//串口初始化函数 9600void URATinit(){ TMOD=0x20; SCON=0x50; TR1=1; TH1=0xfd; TL1=
2021-10-02 12:12:46
39105
13
原创 MInd+制作语音识别机器人
软硬件工具:装有Mind+程序的Windows系统电脑一台百度大脑个人账户一个百度大脑个人账户的申请百度大脑直通车https://ai.baidu.com/mind+官方教程https://mindplus.dfrobot.com.cn/bdai源码启动部分
2021-09-17 08:47:03
2231
原创 嵌入式系统开发
嵌入式系统概论嵌入式系统的特点:专用性:与具体应用紧密结合,具有很强的专用性隐蔽性:嵌入式系统是被包装在内部资源受限:要求小型化、轻型化、低功耗及低成本,因此软硬件资源受到限制高可靠性:任何误动作都可能会产生致命的后果实时性:需要实时数据软件固化:软件都固化在只读存储器ROM中,用户不能随意更改其程序功能嵌入式系统的应用嵌入式处理器的结构类型的4种分类方式1.按指令集划分CISC(复杂指令集结构)和RISC(简单指令集结构)2.按存储机制划分冯洛伊曼结构和哈佛结构3.按指字
2021-08-12 16:14:21
12763
4
原创 TCP连接的建立和终止
为帮助大家理解connect、accept和close函数并使用netstat调试TCP应用程序,我们必须了解如何建立和终止TCP连接以及TCP的状态转换图。这是一个通过加深了解底层网络协议以帮助我们编写网络程序的例子。三路握手下述步骤建立一个TCP连接:1.服务器必须准备好接受外来的连接。这通过调用socket、 bind 和listen函数来完成,称为被动打开(passive open)。2.客户通过调用connect进行主动打开(active open)。这引起客户TCP发送一个SYN分节(表
2021-07-27 11:09:54
874
1
原创 UNIX网络编程--传输层:TCP和UDP
绝大多数的客户-服务器应用程序都使用TCP或UDP。这两个协议转而使用网络层协议IP;P版本4(IPv4)或IP版本6(IPv6)。尽管可以绕过传输层直接使用IPv4或IPv6,但这种技术(称为原始套接口)较少使用。UDP是一种简单的,不可靠的数据报协议,而TCP是一种精致的、可靠的字节流协议。总图虽然称为“TCP/IP"协议族,但是本协议族还有许多其他成员。图2.1展示了这些协议的概貌。在这个图中,我们展示了IPv4和IPv6。从右向左观察这个图,最右边的4个应用程序使用IPv6,这涉及到
2021-07-26 13:40:26
278
原创 UNIX网络编程--TCP/IP(2)
OSI模型描述网络中各协议层的一般方法是国际标准化组织(ISO)的计算机通信开放系统互连(open systems interconnection,OSI)模型。这是一个七层模型,如图1.14所示,图中同时给出了与网际协议族的近似映射。网络层由IPv4和IPv6协议处理。传输层可以选择TCP或UDP。图1.14中的网际协议族,在TCP与UDP之间留有一个间隙,指出应用程序可以绕过传输层而直接使用IPv4或IPv6。这称为原始套接口(raw·socket)。OSI模型的上面三层合并成一层,称为应用层。
2021-07-25 12:27:13
194
1
基于STM32F401RET6的智能锁
2022-03-05
Gerber_new_51最小系统_2.zip
2021-10-26
freebsd安装过程中,遇到DHCP获取地址失败的问题。
2021-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人