自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凡人叶枫的博客

记录成就更好的自己!

  • 博客(46)
  • 资源 (11)
  • 收藏
  • 关注

原创 一个关于“坑”的顺口溜

作为程序员,做项目写代码,难免遇到各种坑,听到一个关于坑的顺口溜,很符合解bug时的心境!大坑套小坑,新坑套老坑;坑中灌着水,水中藏着钉;钉上抹着毒,毒还是剧毒!

2024-09-03 17:54:05 728

原创 C++中的 extern “C“

是一个链接指示符,用于告诉 C++编译器以 C 语言的方式进行链接。时,要确保 C 函数的声明和定义与 C++程序中的调用方式一致。只影响链接阶段,它并不会改变 C++代码的语法或语义。如果有一个 C 语言库,例如。假设存在一个 C 语言函数。,可以在 C++程序中使用。

2024-08-30 18:40:39 511

原创 C++ 中 volatile 关键字

是一个类型修饰符,用于告诉编译器,被修饰的变量可能会被程序之外的因素(如操作系统、硬件或其他线程)修改,因此编译器不能对该变量进行优化。可以确保每次读取到的都是传感器的最新值,而不是编译器可能缓存的旧值。在这个例子中,程序不断从硬件传感器读取值并输出。,编译器可能会对变量进行优化,导致结果不准确。可以确保每个线程都能看到变量的最新值。在这个例子中,两个线程同时对。

2024-08-30 18:36:44 391

原创 C++ 中this指针介绍

this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用 this指针。当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。this 指针被隐含地声明为: ClassNameconst this,这意味着不能给 this 指针赋值;在 ClassName。

2024-08-30 18:29:37 307

原创 C++ 中 static 关键字

修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。但是,在静态成员函数内不能访问非静态成员,因为静态成员函数不依赖于特定的对象,而非静态成员属于特定的对象。,表明函数的作用范围,仅在定义该函数的文件内才能使用。,修饰成员函数使得不需要生成对象就可以访问该函数,但是在 static 函数内不能访问非静态成员。,修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员。

2024-08-30 18:18:32 617

原创 C++ 中的const关键字

分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer);,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改;通过表格可以看出,c++中我们尽量使用const常量去替代宏定义。,说明该成员函数内不能修改成员变量。,说明该变量不可以被改变;

2024-08-30 18:13:29 415

原创 C++ 中的auto关键字

auto是一个关键字,用于自动类型推导。它可以根据初始化表达式来推断变量的类型,从而简化代码的编写,提高代码的可读性和可维护性。时要确保初始化表达式能够明确地确定变量的类型,否则可能会导致编译错误或意外的结果。不能用于函数参数的类型推导,也不能用于推导数组类型。

2024-08-30 10:42:35 310

原创 C++命名空间(namespace)介绍

混乱的命名空间会让程序难以理解,一定要理解和用好命名空间,另外尽量少使用“using namespace myNamespace;”这种将整个命名空间引入当前作用域的操作。在 C++中,命名空间(namespace)用于避免命名冲突以及组织代码。,后面跟着命名空间的名称和一对花括号,在花括号内可以定义函数、变量和类等。命名空间可以嵌套,以进一步组织代码。命名空间的定义使用关键字。

2024-08-30 09:59:00 511

原创 C++介绍

最近又读了一遍C++的经典之作,《C++ primer plus》,学而不记则徒劳无功,独学而无友则孤陋寡闻,下面分享书籍的电子版以及思维导图文件,供大家交流。学习C++比较困难,门槛比较高,主要原因是C++在不断的发展过程中,已经发展成一个语言联邦,它支持过程式编程,面向对象,函数式编程,泛型编程,元编程等多种编程范式。我们要想能充分学习理解C++,也需要结合这些特性,分开去理解,我们可以按照下面几大类去学习。

2024-07-15 20:35:54 203

原创 linux binutils工具集

对于嵌入式系统开发来说,掌握GNU的工具集(toolchain)- binutils toolchain非常重要。这些工具,可以说是我们开发和调试不可缺少的利器。

2023-05-11 14:20:24 888

原创 一种IPC通信机制Gdbus详解

常规进程间通信有管道,消息队列,共享内存,以及socket等,每个都有优劣,这次我们介绍一种高阶的进程间通信方式DBus。DBus通信是IPC通信机制的一种方式,本身是建立在socket机制之上,它支持远程函数调用和信号传递。session(会话模式)、system(总线模式)**总线模式(system bus):**采用总线模式时,系统需要维护一个DBus Daemon,每个DBus的请求通过DBus Daemon转发。

2023-04-27 19:30:00 3757

原创 如何将网页保存为pdf

有的时候我们需要备份某一个网页,但是直接收藏有的时候源链接会被删除,如果保存成网页,文件又很多,保存成PDF格式是一个不错的选择,下面就跟大家分享一个简单的方法。我用的Google Chrome和Microsoft Edge浏览器,其他浏览器类似。打印机选择另存为pdf,布局选择纵向,页面选择全部,右侧是预览,可以看一下网页是否都加载完,确认后点击保存,即可。

2022-10-07 10:23:47 3581

原创 微软VSCode的常用操作和常用设置

微软的Visual Studio Code(VSCode)编辑器是因为其简洁高效,轻量级,是很多程序员的选择,如何快速上手并使用,本文将对vscode在C/C++下的应用进行简单介绍。

2022-10-01 23:13:57 1653

原创 开源免费强大的按键精灵软件----AutoHotKey

AutoHotkey 是一款 windows 平台下的热键脚本语言程序。可以实现快速输入、快捷操作等多种快捷功能。程序简洁小巧,脚本可玩性高,能大大提高我们的生产效率。

2022-09-20 16:09:49 3899

原创 一款开源的支持离线的支持MarkDown的优秀笔记软件----思源笔记

日常工作中,大家可能会用笔记软件记录自己积累的一些知识,组建自己的知识管理系统,常用的工具可能有云笔记,如有道云笔记,印象笔记等,但是有时候在工作中,信息比较敏感,不能够将信息上传到云端,这个时候,一款支持离线的笔记就非常重要。**思源笔记,满足你的要求!**

2022-09-20 12:08:50 2598

原创 一款开源免费的任务日程管理工具ToDoList

推荐给大家一款开源免费的任务日程管理工具ToDoList,是适合职场人尤其是程序员的经典任务管理软件,使用好的话会让大家在工作中事半功倍。

2022-09-19 20:25:50 8706

原创 本地笔记软件mybase8.x破解试用用时长限制

本地笔记软件mybase8.x是一个经典软件,但是它是收费软件,我们可以在官网进行购买,软件给了大家30天的试用时间,可是有时候可能30天大家不够用,哈哈,那就可以通过下面的方法再多试用一段时间,理论上可以无限续杯哦。

2022-09-15 18:45:46 35216 11

原创 本地笔记软件mybase8.x -- 构建个人知识体系

随着学习和工作的不断推进,大家收集积累的知识越来越多,也越来越混乱,所以一个良好的笔记记录方法和一个好用的工具非常重要。虽然现在有很多云笔记解决方案,但是有的时候本地离线笔记更靠谱,mybase是一个很好的选择。

2022-09-03 23:28:30 3268 2

原创 使用python库geopy计算多组经纬度距离的方法

日常工作中有时会用到需要计算gnss定位模组的定位精确度,需要将被测设备和真值设备进行经纬度坐标之间的对比,由于经纬度坐标想要计算差值,需要涉及到坐标系的转换,计算方法比较复杂,geopy库很好的解决了这个问题,集成了大量的方法,可以做很多地理坐标相关的事情,其中就有计算两个坐标点之间距离的方法。整理出两个设备输出的gps的utc时间以及经纬度,按照下面格式写到txt文本中,脚本读取txt文本,进行整秒的经纬度进行比较,输出某一时间点的定位误差,单位为m。...

2022-08-01 20:24:06 3305 1

原创 自动文档生成工具Doxygen

说明Doxygen 是一个程序的文件产生工具,可将程序中的特定注释转换成为说明文件。他能将文件的注释,类的注释,函数的注释,结构体的注释,按照一定的规则,生成文档,可以支持跳转,文档格式可以生成html供线上使用,也可以转成pdf格式本地查看,非常方便。如果你做的是对外的sdk接口,可以配合jenkins等持续集成工具,自动生成文档说明。安装平台:Ubuntusudo apt-get install graphvizsudo apt-get install doxygen sudo apt-ge

2022-01-18 11:11:32 870

原创 常用bit字节按位操作

常用bit操作

2022-01-14 11:58:11 1149

原创 基于git的仓库管理工具repo的简单介绍

一、repo介绍repo命令行工具,是一个python脚本,对git部分命令进行封装,简化了对多个git版本库的管理,通过配置manifests配置文件,可以将很多个git仓库有效的进行组织管理。最开始是用在Android源码的管理上,目前被广泛使用。二、repo使用初始化命令:repo init -u [<OPTIONS>]-u: 指定连接到的manifest仓库地址-m: 选择仓库中某个manifest文件,如果没有设置,就使用default.xml-b: 选择一个manie

2022-01-12 16:54:56 2679

原创 基于51单片机和红外漫反射传感器的久坐提醒神器(番茄钟)的设计

一、背景介绍我们工作久了,久坐导致的毛病就显现出来了,腰酸背痛颈椎疼,最近看到利用番茄钟工作法挺好,工作25分钟,休息5分钟,既能调整工作节奏,避免精力过分消耗,也能避免久坐导致的身体问题。我刚开始使用闹钟做提醒,后来尝试番茄钟软件,但是都要手动去操作手机,拿起手机看到信息,然后就会去处理手机上的事情了,起不到作用…直到有一天收拾东西看到了我大学期间基于51单片机做的一个电子设计,激起了我的灵感,开始了基于51单片机的自动番茄钟,久坐提醒神器的设计和制作。整体方案硬件部分继承了大学时焊接的电路板,更

2022-01-11 18:50:08 8790

原创 网络抓包工具tcpdump介绍

说明tcpdump是用于网络分析和问题排查的非常有用的工具,它能够将网络中传送的数据包完全抓取下来进行分析,也能够根据参数进行筛选,选择自己需要的数据进行分析,十分方便。用法介绍# tcpdump --helptcpdump version 4.1.1libpcap version 1.8.1Usage: tcpdump [-aAbdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [

2021-12-31 16:19:00 674

原创 网络性能测试工具iperf介绍

说明Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。用法介绍# iperf3 -hUsage: iperf [-s|-c host] [options] iperf [-h|--help] [-v|--version]Server or Client: -p, --port # server port to listen on/connec

2021-12-31 10:48:44 487

原创 网络诊断工具ping介绍

说明ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 。ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)echo 请求报文,测试目的站是否可达及了解其有关状态。用法介绍ping --helpBusyBox v1.29.3 (2021-10-18 08:33:23 UTC) multi-call bin

2021-12-30 20:17:17 7241

原创 监控TCP/IP网络的工具netstat介绍

说明netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,以及与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况,用于分析网络问题,非常方便。用法介绍#netstat -husage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help} netstat [-vWnNcaeol

2021-12-30 19:51:30 3959

原创 基于51单片机的上下限可调的数字温度控制系统

摘要:设计并制作了数字温度显示控制系统,能够实时显示环境温度,并在超温限情况下报警提示和进行相应的温度控制。上下限温度可以人工调节,并能通过串口显示在pc机上。测温范围0~100℃,误差0.1℃以内。系统通过单片机STC89C52、温度传感器DS18B20、液晶1602以及串口模块组成,上机位软件用VB编写。实验测试通过,该系统可用于工业上对温度的监测和控制。关键词:数字显示;温控;上下限可调;上位机1.作品功能及总体方案1.1 功能描述本设计设计并制作了数字温度显示控制系统。主要应用了STC89C

2021-12-27 20:06:56 30241 23

原创 GNSS NMEA-0183协议解析

最近在做gps相关工作,需要解析gps模组输出的nmea数据,获得经纬度等信息,整理了一下nmea各个字段的含义,供大家参考。基本介绍GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星

2021-12-24 16:16:54 18434 4

原创 strace常用操作

一、strace常用操作跟踪程序运行过程中执行的系统调用和接收到的信号。二、strace使用运行./strace -p 进程号一般使用-t -T参数打印系统时间及运行时间

2021-11-09 20:11:57 197

原创 gdb常用操作

一、gdb功能介绍程序调试工具,可以动态的改变程序的执行环境。二、gdb使用1、运行(1)./gdb 程序名(2)./gdb 程序名 -p 进程号(3)./gdb运行,输入attach+进程号2、查看变量(1)p 变量名(2)p/10x 变量名3、给变量赋值 p 变量名=x4、查看栈信息 bt5、进入某一层栈 f6、查看所有线程信息 thread apply all bt / info thread7、查看目前栈信息中所有变量信息 info locals...

2021-11-09 20:08:18 1396

原创 利用闲置笔记本电脑搭建linux服务器并布置自己的网站

背景一直想有一个云服务器,做一些感兴趣的事情,比如搭建一个个人网站,做一些linux上的验证实验,学一下Python等等。之前申请了一个腾讯云服务器,但是到期后续费很贵,就不再使用了,刚好家里有一台闲置的笔记本电脑,就想着自己搭建一台linux服务器,方便自己使用。本文将从以下几个方面介绍一下。1、如何开启SSH服务,方便远程访问;2、如何开启WEB服务器,搭建简单网站;3、如何开启内网穿透,做到外网访问;4、如何配置笔记本不休眠持续运行。准备一台能联网的笔记本电脑,配置能用就行。安装好

2021-10-31 17:13:56 27538 3

原创 C语言编写的一个简单通用的日志框架----支持日志等级,日志颜色,打印到文件等设置

日常工作中常常需要输出日志进行调试,本文提供了一个C语言编写的日志框架。可以输出日志到文件或者是终端,支持日志等级设置,不同日志等级可以设置不同的颜色,另外还可以设置进程名、模块名、函数名等的输出,能够打印毫秒级时间,能够限制文件大小,使用方便,架构小巧灵活。本架构多线程的支持有待验证,每次日志调用都会使用写入,性能有待验证,另外,写满切换文件没有实现。SimpleLog.h/****************************************************************

2021-09-27 19:07:47 1052

原创 简单通用的Makefile编写例子

Makefile的语法很多,编写起来也比较麻烦,日常工作中我们可能需要编写一些简单的测试程序,每次编写Makefile文件比较麻烦,本着拿来主义的原则,编写了一个通用的Makefile示例,供大家交流使用,支持路径的修改,支持改动增量编译。例子中具体每行的含义,大家可以百度查一下,或者参考《跟我一起写 Makefile》看一下,本文仅仅是分享成品,不做详细阐述。CC = gccCFLAGS = -g -Wall -std=c99CLIBS = -lpthreadSRC_PATH = srcOB

2021-09-27 18:21:23 779

原创 日志输出显示优化----printf函数控制输出颜色

大家在编写代码的时候会使用printf函数输出日志,printf函数有控制输出字符的显示方式、前景色、背景色的功能,使用后,日志看起来比较清晰。举例说明:printf( “\033[0;31;42m Hello world !\033[0m\n” );显示结果:解释说明:格式: \033[显示方式;前景色;背景色m显示方式 :0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)前景色:30(黑色)、31(红色)、32

2021-09-27 17:31:35 418

原创 C语言时间函数总结

日常编程过程中经常会用到日期和时间,我们常常需要对日期和时间进行转换和处理,C语言time.h中为我们提供了这些函数。一、时间的概念通用协调时间(UTC, Universal Time Coordinated):是一个全球通用的时间标准,使用秒来计算。格林尼治平均时(GMT, Greenwich Mean Time):基本上等同于UTC时间。本地时间:整个地球分为24时区,本地时间是结合各地的时区进行计算的。本地时间 = UTC + 时区差,时区差东为正,西为负,比如北京为东八区,则时区差为+8。

2021-06-01 18:55:48 11533 5

原创 cmake教程-提高篇

之前写过一篇文章,以实例简单介绍了cmake的常用操作,这次写一下稍微提高一些的用法。入门篇请参考:cmake入门篇一、常需要设置的几个变量如果我们是在嵌入式下编程,需要交叉编译,那么下面一些变量可能需要设置一下。#指定C++的标准set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_CXX_EXTENSIONS OFF)#指定C语言的标准set(CMAKE_C_STANDARD 99)set(CMA

2021-05-28 18:27:10 2432

原创 Linux下使用shell命令统计工程代码行数

使用下面脚本可以统计代码行数:find . "(" -name "*.cpp" -or -name "*.c" -or -name "*.h" ")" -print | xargs wc -l > statistics.txt结果如下:cat statistics.txt 36 ./main.cpp 6 ./div/div.cpp 1 ./div/div.h 1 ./mul/mul.h 6 ./mul/mul.cpp 1 ./sub.h 1 ./add.

2021-05-28 11:56:00 480

原创 cmake教程-入门篇

从事linux的开发工作,不可避免的需要进行编译构建的工作,直接编辑Makefile,不仅需要熟悉Makefile的语法,还需要知道依赖和推导规则,比较麻烦。而cmake工具,只需要开发者提供头文件路径、库路径、编译参数等基本参数,就能快速生成Makefile,语法简单,能够快速上手,另外cmake工具能够满足跨平台的要求,因此应用比较广泛。下面我们以一个实际的计算器的例子,逐步深入对cmake的学习理解。一、最简单的例子在linux平台下使用cmake生成Makefile并编译的通常流程有下面几步。

2021-05-27 19:09:02 9547

原创 Linux开发书籍推荐

在做linux开发学习过程中读过的一些书,有些比较经典,但是经典的未必是适合的,块头太大刚开始时读可能有些吃力,可以先阅读一些写得比较浅的书籍,比如从入门到精通系列,先入门提起兴趣,再逐步阅读精进,学习不是一蹴而就的,活到老,学到老,软件开发行业尤其如此。1、linux相关《Linux程序设计(第4版)》《Linux命令行与shell脚本编程大全(第3版)》《UNIX环境高级编程》2、C/C++语言《C语言程序设计》《C程序设计语言》《C Primer Plus(第6版)中文版》《C++

2021-05-20 19:00:39 771

C++ primer plus 6.0 源代码和附录

C++ primer plus 6.0 书中例程和附录 仅供大家学习使用

2024-07-15

C++ primer plus 第六版高清思维导图

C++ primer plus 第六版高清思维导图 供大家学习C++使用

2024-07-15

一个简单的cmake的使用例子

一个简单的cmake的使用例子,cmake_test.tar.gz

2021-05-27

基于51单片机的上下限可调的数字温度控制系统proteus仿真

基于51单片机的上下限可调的数字温度控制系统proteus仿真 使用学习51单片机和 电子设计的同学

2023-05-29

基于51单片机的数控电压源设计

基于51单片机的数控电压源设计 按键控制输出电压大小 并显示在数码管上 包含proteus硬件仿真和C语言程序

2012-11-25

51单片机完整开发板的proteus仿真,供大家学习参考

完整的包含周边电路的proteus仿真开发板,大家可以用这个学习51单片机.里面附有原理图和学习资料

2012-11-25

基于51单片机的数字电压表设计

基于51单片机的数字电压表设计,数码管显示。包含proteus硬件仿真和C语言程序

2012-11-25

电压电流转化电路的proteus仿真

电压电流转化电路的proteus仿真 包含硬件仿真图和keil c语言程序

2012-11-25

51单片机的电子时钟加温度设计的proteus仿真

51单片机的电子时钟加温度传感器DS18B20的设计,含有proteus硬件仿真图和c程序

2012-11-25

putty.zip支持adb版本

支持adb、ssh的轻量级终端工具

2021-05-12

adb.zip官网最新版

adb官网最新版本,解决了显示颜色乱码问题

2021-05-12

温度ds18b20测量仪表的设计液晶1602显示

完整的基于51单片机的温度传感器ds18b20显示在1602上的设计。c语言程序文件

2012-11-25

飞思卡尔单片机制作的数字电压表程序

基于飞思卡尔单片机的数字电压表制作 数码管显示 adc0809转换

2012-11-25

绿色小巧超星pdg文档阅读器

绿色小巧超星pdg文档阅读器,不用安装,打开即用

2012-11-25

空空如也

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

TA关注的人

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