自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言基础知识

1、枚举是将多个有关联的符号封装在一个枚举中,而宏定义是完全散的。也就是说枚举其实是多选一,而且只能在这里面选,有时候有效防止其他不符数据的输入。2、什么情况下用枚举?当我们要定义的常量是一个有限集合时(譬如一星期有7天,譬如一个月有31天,譬如一年有12个月····),最适合用枚举。(其实宏定义也行,但是枚举更好)3、不适合用枚举的情况下(比如定义的常量符号之间无关联,或者无限的)用宏定义。

2024-01-04 17:04:29 2300 57

原创 直流电和交流电

直流电(Direct Current,简称DC)和交流电(Alternating Current,简称AC)是电流的两种基本形式。

2023-12-11 17:22:24 1681 54

原创 计算机新建盘符和重新分配盘符的大小

有些电脑刚买来时候,只有一个C盘分区,此时最好增加几个分区方便使用。C。

2023-12-01 17:18:22 1385 62

原创 一文搞懂RS-485通信协议

是一种通用的通信标准,广泛用于数据采集和控制应用中。它的主要优点之一是它允许将多个 RS485 设备放在同一条总线上,这使得多个节点可以相互连接。RS-485是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准(balanced transmission standard),EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,已将RS改为EIA/TIA。

2023-11-21 15:21:13 13071 80

原创 一文搞懂CAN总线协议

CAN总线通信系统是串行通信的一种,要优于RS485总线,是目前比较常用的一种工业总线,如汽车的电气部分就采用CAN总线实现通信。与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步半双工通讯。

2023-11-15 15:07:52 1231 70

原创 嵌入式软件开发笔试面试

段错误(Segmentation Fault)是一种常见的运行时错误,它在程序访问无效的内存地址或试图对只读内存进行写操作时发生。当程序产生段错误时,操作系统会终止程序的执行,并生成一个错误报告。解引用空指针:当程序试图访问空指针所指向的内存区域时,由于空指针没有有效的内存地址,就会产生段错误。访问越界:当程序访问数组、指针或缓冲区等数据结构时,超出了其有效范围,就会导致段错误。写入只读内存:当程序试图对只读内存(如字符串常量)进行写操作时,就会引发段错误。解决段错误需要进行调试和修复代码。

2023-10-20 10:31:35 1315 75

原创 证件照换底色详细教程

说到证件照的底色更改,我想对大部分朋友来说是蛮头疼的事情,由于我们不论是在生活还是学习中,有时候总会要上传一些证件照,而当你手上有证件照准备上传时,发现底色不对,是不是很抓狂,现在,我就来给朋友们解决这个问题,一起来看看吧。第一步:打开PS软件,点击打开按钮,选择要更改底色的照片,然后点击打开即可。第六步:勾选上净化颜色,输出到选择新建带有图层蒙版的图层,随后点击确定。第四步:点击左侧调整边缘画笔工具,对不恰当的边缘进行适当的调整。第二步:点击选择按钮,然后点击主体,当出现虚线框即可。

2023-10-08 20:12:55 522 81

原创 边缘计算网关

WEB模块移植lighttpd作为网关端服务器,实现了网关的内置网页功能。通过浏览器访问网关的IP地址,即可登录到网关内置网页界面,实现了登录、远程设备信息展示和控制等功能。网页发送http请求后,lighttpd会将请求转发给cgi,通过自行开发的cgi程序,进行解析http请求并做出相应的回复。QT客户端使用QT开发了桌面客户端,通过MQTT协议实现数据的采集,协议使用JSON格式,解析完成后刷新到界面上。用户操作界面组件,下发协议来控制设备。

2023-10-03 17:27:07 3402 87

原创 String底层函数的实现方式

为了避免出现这种情况,我们可以将src和dest都移动 n-1个位置,这样我们就可以从地址值向高地址进行拷贝,这样尽管也有可能目标字符串覆盖源字符串的情况,但是定影可以得到一个正确的拷贝。第一种情况dest=src,此时源字符串与目标字符串指针指向同一个位置,拷贝的过程相当自己给自己赋值,因此拷贝结束 后源字符串并没有发生变化。第二种情况dest < src,这样的拷贝尽管会覆盖src的内容,出现了内存重叠,但其可以完成内存拷贝的功能,并没有将错误的信息拷贝过来。

2023-09-04 20:39:13 993 90

原创 网络电子词典

1. 登录注册功能,不能重复登录,重复注册2. 单词查询功能3. 历史记录功能,存储单词,意思,以及查询时间4. 基于TCP,支持多客户端连接5. 采用数据库保存用户信息与历史记录格式要求: 1. main函数只跑逻辑,不允许跑功能代码 2. 功能代码封装成函数。

2023-08-24 10:32:55 2064 81

原创 网络聊天室

一、项目要求利用UDP协议,实现一套聊天室软件。服务器端记录客户端的地址,客户端发送消息后,服务器群发给各个客户端软件。问题思考客户端会不会知道其它客户端地址?UDP客户端不会直接互连,所以不会获知其它客户端地址,所有客户端地址存储在服务器端。有几种消息类型?登录:服务器存储新的客户端的地址。把某个客户端登录的消息发给其它客户端。聊天:服务器只需要把某个客户端的聊天消息转发给所有其它客户端。退出:服务器删除退出客户端的地址,并把退出消息发送给其它客户端。服务器如何存储客户端的地址。

2023-08-23 11:02:26 1102 41

原创 Makefile模板和工程模板(消息队列和共享内存)的使用

定义a、b两个进程,a进程创建若干个(个数自己决定,是可变的)学生,填充任意的信息,通过共享内存将学生信息共享给b进程(包括学生个数)。b进程拿到信息后打印到终端。提示:这里可巧妙的利用指针的操作,先申请足够大的共享内存,映射后然后通过不同类型的指针来操作和读取内容中的数据。以下组件依赖临时目录,必须提前创建(tmp目录是内存型目录,如果重启了系统会消失,所以每次重启后注意重新创建下)

2023-08-01 10:55:23 437 33

原创 基于内核链表和JSON的MQTT的使用

linux内核链表与众不同,他不是把将数据结构塞入链表,而是将链表节点塞入数据。链表实现定义在,使用内核链表时,包含此文件。JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。

2023-07-29 10:41:37 1522 29

原创 Git----分布式版本控制系统

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。它是世界上目前最先进的分布式版本控制系统。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。

2023-07-25 20:32:06 968 32

原创 Linux底层

基础:c语言 具有一定硬件基础特点---》前后联系 arm目标: 看懂简单的汇编代码 会看电路图、芯片手册 学会如何用软件控制硬件思想 解决问题的办法谈谈对嵌入式的理解? 以计算应用为中心,软硬件可裁剪的专用计算机系统。对功耗、体积、性能,成本等有一定要求。特点:专用性强,专用的计算机;运行环境差异性大;比通用PC机资源少(适用性,够用就好);功耗低,体积小,集成度高,成本低;具有较长的生命周期学习arm重点学习两方面:程序运行原理、硬件控制原理。

2023-07-21 19:29:02 1315 34

原创 STM32基础知识点总结

1、课程体系介绍单片机概述+arm体系结构+STM32开发环境搭建STM32-GPIO编程-点亮世界的那盏灯STM32-USART串口应用+SPI+液晶屏STM32-中断系统STM32-时钟系统温湿度传感器-DHT112.如何学习单片机课程多听理论、多理解、有问题及时提问自己多扩展、多动手操作环境安装包链接 https://share.weiyun.com/uHlsUCtVKeil 单片机集成开发环境 - 代码编写、编译、调试、下载。

2023-07-11 19:40:47 7014 29

原创 C语言之网络高级编程笔记

基于Webserver的工业数据采集项目htmlcgiModbus协议 (应用层)工具:Modus Slave/Poll wireshark Postman一、Modbus起源Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三种其中Modbus TCP是在施耐德收购Modicon后1997年发布的。

2023-07-01 19:55:50 1401 27

原创 Qt的基本知识与应用

一、C++梳理1. 面向对象的三大特性1.1 封装把类的一些属性和细节隐藏(private、protected),根据读写需要重新开放外部调用接口(public、protected)。1.2 继承在已有的类的基础上创建一个新的类,新的类拥有之前类的特性,通常新的类还会做出一些必要的修改或增加。1.3 多态一种接口,多种状态。通常用于参数传递,只需要写一个参数接口,就可以支持不同的继承类型,触发需要三个条件:1. 公有继承2. 函数覆盖3. 基类引用/指针指向派生类对象。

2023-06-24 14:28:01 2296 28

原创 C++必背基础知识点总结

重点:不借助任何外部资料就能掌握,考试面试大概率涉及。掌握:不借助任何外部资料就能掌握,考试面试有可能涉及。熟悉:可以适当参考资料掌握,考试面试有可能涉及。了解:可是参考资料掌握,考试几乎不考,面试如果涉及简单聊聊即可。一、C++简介1. 为什么要学习C++?理由一C++是面向对象编程最有代表性的语言之一,可以通过C++课程学习新的编程思想。理由二之前编程都是没有界面的,Qt是嵌入式中常用的图形用户界面编程框架,而Qt是基于C++的。理由三。

2023-06-04 21:42:42 729 25

原创 C语言之网络编程(必背知识点)

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

2023-05-27 19:33:03 4863 48

原创 IO 与进程线程

在C库中定义的一组专门用于输入输出的函数。

2023-05-17 15:58:24 764 30

原创 数据结构 (入门必看)

1、学习C语言是如何写程序,学习数据结构如何简洁高效的写程序2、遇到一个实际问题,需要写程序,需要解决两个方面的问题1)如何表达数据之间的逻辑规律以及如何将数据存储到计算机中数据结构数据:不是单纯的数值,而是一个类似于集合的概念(结构体(节点))结构:数据之间的关系2)采用什么样的方法来解决问题:算法(冒泡排序、选择排序、顺序查找)数据结构 + 算法 = 程序3. 数据结构数据的逻辑结构、存储结构及操作3.1 数据数据:不是单纯的数值,而是一个类似于集合的概念。

2023-05-05 17:49:15 8383 43

原创 C语言 | 约瑟夫问题(猴王争夺战)

它的下一位继续从1开始报数,数到m的猴子被淘汰,依次类推,最后剩下一个为猴王。第二次报数:从被淘汰的五号的下一位开始报数,也就是六号,数五个数,6-1-2-3-4,数数完毕,四号被淘汰,第二次报数后,剩余猴的数量如下。第三次报数:从被淘汰的四号的下一位开始报数,同样是六号,数五个数,6-1-2-3-6,数数完毕,六号被淘汰,第三次报数后,剩余猴的数量如下。第四次报数:从被淘汰的六号的下一位开始报数,也就是一号,数五个数,1-2-3-1-2,数数完毕,二号被淘汰,第四次报数后,剩余猴的数量如下。

2023-04-28 17:53:54 7321 35

原创 5天学会Linux C高级

软件名_版本号.次版本号-修订次数_架构.后缀函数是一个完成特定功能的代码模块,其程序代码独立变量名=值val=10注:等号两边都不能有空格。CC=gcc取shell变量的值:$变量名在shell编程中通常定义的变量名用大写,变量的调用:$变量名Linux Shell/bash从右向左赋值如:Y=yyX=$Yecho $X //输出yy使用unset命令删除变量的赋值如:X=xxunset Xecho $X //没有任何输出。

2023-04-19 21:14:06 1349 33

原创 C语言必背经典程序代码

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

2023-04-17 20:10:21 29680 26

原创 学生成绩管理系统的设计与实现

实现对一个有32个学生的班级,每个学生有7门课程,实现对他们的班级成绩进行添加、修改、删除、查找、统计输出等基本信息进行一系列的操作。每个学生包括如下信息:学号、姓名、7门课程名称。

2023-04-14 18:17:10 4000 16

原创 Linux C 语言高级编程

(1)GNU工具编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision其他工具:用于把多个目标文件链接成可执行文件的链接器,或者用作格式转换的工具。(2)部分相关资源(3)GCC简介全称为GNU CC ,GNU项目中符合ANSI C标准的编译系统。

2023-04-07 19:36:19 349 13

原创 Linux 操作系统和C语言(详解)

存储类型] [数据类型] *指针变量名;// 在定义指针,*起标识作用。//定义指针时,数据类型表示的指向的地址存储的数据类型。

2023-04-03 18:08:39 5969 13

原创 linux shell命令

man、passwd、su、echodate、clear、df、du命令的用法

2023-04-01 10:25:52 496 7

原创 计算机中的数据类型以及编译流程

1、Ctrl +Shift+ L 自动对齐2、Ctry +S 保存。

2023-03-31 16:17:15 171

原创 软件包管理及shell命令

随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多Ubuntu Linux功能使用shell命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。可以这样认为,Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。命令是用户向系统内核发出控制请求,与之交互的文本流。shell是一个命令行解释器。

2023-03-28 20:30:48 260

原创 函数(详解)

函数的声明,实现以及调用。函数的参数传递方式。函数中传递数组参数。指针函数。递归指针和函数指针。

2023-03-25 13:42:02 460 5

原创 数据库的基本操作

如果一个数据没有,可以使用NULL表示,IN给的待选数据中不允许出现NULL,NULL是一种特殊的数据状态,需要使用专用语句进行判断。模糊查询可以制定查询的格式,无需进行完整的内容匹配,主要使用LIKE关键字,配合两个符号进行标记。可以看到有的人工资是一样,排序支持多个字段排序,如果第一字段值相同,则使用第二字段值的排序规则。为了更好地显示大量的数据,可以一次性只展示一部分数据,采用多页的形式,这种查询就是分页查询。简单查询的结果中包含所有的条目(行),依次展示每条数据,唯一能做的是限制表中出现的列。

2023-03-24 16:46:57 6451

原创 深刻理解指针的应用

指针的基本用法、运算、指针与一维与多维数组的应用、字符指针与字符串的应用,指针数组与多级指针,void与const修饰符的应用。

2023-03-20 20:11:49 815 7

原创 字符数组和字符串的使用

c语言字符数组和字符串以及字符串函数详解

2023-03-18 20:00:17 599 1

原创 一维数组,二维数组及多维数组的使用

一维数组,二维数组及多维数组的定义,初始化和使用,杨辉三角,求数组中最大值等

2023-03-18 09:34:39 281 1

原创 控制语句的使用

return语句的一般形式:return (<表达式>),主要用于终止包含它的函数的执行,若终止的为主函数,则主程序结束。使用math.h后编译时需要+加 -lm gcc test.c -wall -lm。当函数有很多个出口时,使用goto集中到一处是很方便的,特别是函数中有很多清理工作的时候。continue结束本次循环,接着判定下一次是否进行循环。break用于从循环体内跳出循环体,即提前跳出一。break只能用于循环语句和。switch语句中.

2023-03-17 18:36:19 75

原创 输入输出专题

字符输入函数:getchar();字符输出函数:putchar(c),c为字符常量、变量或表达式。整型数据遇到空格、TAB、或回车、非法输入、遇宽度结束。字符串输入函数:puts();格式输入函数:printf("格式控制串",地址表)格式输出函数:printf("格式控制串",输出表)用“%c”格式符时,空格和·转义字符作为有效字符输入。C语言无I/O语句,I/O操作由函数实现。方法二:用格式串中空格或"%*c"来吃掉。一、字符输出函数和格式输出函数。字符串输入函数:gets();

2023-03-12 09:48:27 80 1

原创 数据类型、常量、变量及运算符

正数的原反补码相同,负数的反码等于等于原码的符号位不变,其它位依次取反,补码等于反码加1,0为正,1为负。‘A’+ ' ' = 'a' ' ’表示32。变量名由字母、数字、下划线组成,不能已数字开头,不能和C的关键字重名。逻辑与''&&'':逢0截止,后面的不再执行。逻辑或''||'':逢1截止,后面的不再执行。上面的x代表16进制,#代表输出结果带着0x。变量在内存空间中的首地址,称为变量的地址。-通常表示特别大或者特别小的数,可不写。

2023-03-11 20:32:12 76

原创 linux shell脚本编程

算术运算命令expr主要用于进行简单的整数运算,包括加(+)、减(-)、乘(\*)、整除(/)和求模(%)等操作。结构性语句主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。循环次数由单词表中的单词数确定. 命令表中的命令可以是一条, 也可以是由分号或换行符分开的多条。注释行可以出现在程序中的任何位置,既可以单独占用一行, 也可以接在执行语句的后面.。主要包括:条件测试语句(两路分支)、多路分支语句、循环语句、循环控制语句和后台执行语句等。

2023-03-11 09:26:27 209 5

String底层函数的实现方式

String底层函数的实现方式

2023-09-04

空空如也

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

TA关注的人

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