自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (7)
  • 收藏
  • 关注

原创 关于SSD1306OLED屏的一些数据分析

帧频帧频(frame rate)是指每秒钟放映或显示的帧或图像的数量。ssd1306数据手册给出了帧频的计算公式:

2019-10-09 20:21:43 3984

原创 Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气

什么是json? 懵逼回答:【参考菜鸟教程】  a.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)  b.JSON 是轻量级的文本数据交换格式  c.JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前...

2019-10-03 00:06:36 4833 15

原创 input: Unspecified device as /devices/virtual/input/inputx问题解决

将input子系统中的handler层和core层对应的代码编译进内核镜像中:zImage make menuconfig Device Drivers ---> | Input device support --->//核心层:drivers/input/input.c | <*> Event inter...

2019-09-21 13:38:14 2397 1

原创 Linux -- tcp单向文件传输例程

tcp_send_file.c#include <stdio.h>#include <stdlib.h>#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#includ...

2019-08-13 09:20:34 581

原创 Linux -- 信号量编程接口封装及如何实现互斥与同步

sem.h #ifndef _SEM_H#define _SEM_H int get_sem(int key, int nsems); int del_sem(int semid); int set_sem_val(int semid, int semnum, int sem_val); int sem_P(int semid, int semnum); int sem_V(in...

2019-08-12 09:22:58 506

原创 Linux --共享内存单向读写举例(非同步->同步机制)

部分内核的宏: #ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRC...

2019-08-11 16:06:56 564

翻译 Linux -- ftok函数

翻译自Ubuntu 19版本下的Linux Programmer's Manual函数名:ftok – 将一个路径名和一个对象标识符转换为System V IPC键值。概要:#include <sys/types.h> #include <sys/ipc.h> key_t ftok(const char *pathname, int ...

2019-08-10 22:32:05 394

原创 Linux --sigaction举例(改变信号默认操作)

环境 -- ubuntu64位 内核宏及函数部分对照/*signal number*/#define SIGHUP 1#define SIGINT 2#define SIGQUIT 3#define SIGILL 4#define SIGTRAP 5#define SIGABRT 6#define SIGIOT...

2019-08-10 12:48:11 759

原创 Linux -- 有名管道mkfifo单向读写实例

fifo_write.c #include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <fcntl.h>...

2019-08-08 21:16:08 1170

原创 Linux -- 无名管道pipe单向读写演示实例

#include <sys/types.h>#include <sys/wait.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#define QUIT_STR "quit"intmain(int a...

2019-08-08 19:31:32 383

翻译 Linux -- fflush函数

翻译自Ubuntu 19版本下的Linux Programmer's Manual函数名:fflush - 刷新一个流概要: #include <stdio.h> int fflush(FILE *stream);描述:   对于输出流,fflush()通过流的底层write(2)函数对所有用户空间缓存的数据进行强制写操作,写到所给定的输出或...

2019-08-07 17:21:19 3819

翻译 Linux -- dup, dup2, dup3

翻译自Ubuntu 19版本下的Linux Programmer's Manual函数名:dup, dup2, dup3 - 复制一个文件描述符概要:#include <unistd.h>int dup(int oldfd);int dup2(int oldfd, int newfd);#define _GNU_SOURCE /* 参...

2019-08-07 12:12:32 400

原创 Linux -- ls -l 命令的函数实现

效果:file_mode.h文件#ifndef __FILE_MODE_H#define __FILE_MODE_H void stat_mode(const char *pathname);#endiffile_mode.c文件#include <string.h>#include <sys/types.h>#include &lt...

2019-08-07 08:38:03 562

翻译 Linux -- asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r函数

函数名:asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r - 转换日期和时间成分解时间(修正时间)或者ASCII格式的字符串。概要: #include <time.h> char *asctime(const struct tm *...

2019-08-06 11:45:28 1785

翻译 Linux -- stat, fstat, lstat, fstatat函数

函数名:stat, fstat, lstat, fstatat - 获取文件的状态概要: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *pathname, struct stat *statbuf...

2019-08-05 15:59:49 1618

原创 c语言中的逻辑值

说明: 逻辑值有两种:“真”和“假”。非0为真,否则为假。c语言没有提供逻辑值给用户使用,c++提供了以True表示真,False表示假。条件判断、关系运算符、逻辑表达式的结果都是逻辑值。由于c语言的灵活特性,以1代表逻辑“真”,以0代表逻辑“假”。测试: 由结果可以看到非0代表真,执行了if下的输出语句,说明了条件判断是以逻辑值去判别的。而1逻辑与5的结果为1,-7逻辑与0的...

2019-08-03 20:30:21 8712

翻译 linux gcc命令

gcc: 描述:   当您调用GCC时,它通常执行预处理、编译、汇编和链接。"overall option"选项能够让你停止在这个过程的某一个中间阶段。例如,-c选项表示不运行链接器。然后只输出通过汇编程序汇编后的目标文件。其他选项用在某一个处理阶段。还有一些选项用于控制预处理器和编译器本身。由于您很少需要使用它们中的任何一个,所以这里没有记录其中的大多数。然而,其他选项控制汇编和链接器;...

2019-08-03 17:43:13 320

原创 c运算符优先级和结合性

参考:  《c程序设计第三版–谭浩强》

2019-08-02 22:32:53 524

原创 动态库(.so)的制作

扩展:  linux gcc命令描述: a.动态库也叫共享库 b.动态库把对一些库函数的链接载入推迟到程序运行的时期(runtime)。c.可以实现进程之间的资源共享。d.将一些程序升级变得简单。e.甚至可以真正做到链接载入完全由程序员在程序代码中控制。创建动态库:a.将库源文件编译成.o的目标文件–> gcc [-fPIC] -c mylib.c -o mylib....

2019-08-02 08:58:43 1961

原创 linux ar命令 --静态库(.a)的制作

[ar命令] 描述:    Linux系统的一个备份打包命令,用于创建归档文件(archive),或从归档文件中提取、添加、删除成员文件。  ar命令最常见的用法是将目标文件(.o)打包为静态链接库(.a)。在嵌入式开发中经常用到。 命令格式:   ar p [mod] 归档文件 [成员文件…]  p:必选参数,只能选一个    –r:插入成员文件…存档(带替换)。此操作与q...

2019-08-01 22:39:36 2931 1

原创 多文件目录下的makefile的编写(从简单到复杂)

再看这篇文章之前可以先看下这篇文章:  Makefile文件的简单编写   为了方便管理程序文件,我们一般会添加文件夹来进行分类管理,这时候为了方便我们编译,就需要在各个文件夹里面添加一个makefile文件,make后就会自动的帮我们编译生成可执行文件。 一.简单篇 1. 先给出目录结构  这里[外链图片转存中…(img-PRxa3g7n-1564282089938)]http:/...

2019-07-28 13:44:08 12336 7

原创 ubuntu19.04虚拟机桥接模式在/etc/network/interfaces配置静态IP失败的另一种解决方法

以往在配置ubuntu静态ip时都是在/etc/network/interfaces 里面配置的,不知道是版本高的原因还是怎样,在/etc/network/interfaces配置静态还是连不上网。如果不配置静态ip的话,ubuntu是能上网的,不过对应的ip不是静态ip,默认内容如下图:这里先说下以前在/etc/network/interfaces配置静态ip的方法,使用ifconfig或...

2019-07-27 11:06:14 3948 1

原创 解决ubuntu与virtualbox共享文件夹访问权限问题

出现问题:右键点击该共享文件夹的属性,可以看到只能是root用户访问,普通用户没有权限通过命令cjown修改该文件所有者失败解决方法:将用户名添加到组中输入命令:sudo vi /etc/group在vboxsf组后添加你的用户名group文件包含了unix组的名称和每个组中的成员列表,每一行代表一个组,包含四个字段:祖名:加密的口令:GID号:成员列表,成员列表…,各个成员...

2019-07-27 09:48:36 5676

原创 Makefile文件的简单编写

参考:MakeFile文件是什么——内容、工作原理、作用、使用makeFile文件作用是什么嵌入式操作系统linux篇(书)在嵌入式开发中,一个工程中的源文件是非常多的,如果一个个编译会很麻烦,Makefile的出现解决了这个麻烦事,只要我们把Makefile写好,只需要“make”一下,整个工程完全自动编译,极大的提高了软件开发的效率。下图显示了makefile在工程中的位置,一个目录...

2019-07-18 17:46:15 5680 1

原创 linux修改文件属性

1. 查看文件的属性的命令是:ls [选项] [文件]常用选项有:-l:一行列出一个文件的属性信息(list),除文件名外,显示文件类型、权限、硬链接数目、该文件的拥有者、该文件所在的用户组、大小(单位:字节)、时间信息(如未指明是其他时间即指修改时间)-a:列出当前目录下的所有文件,包括隐藏文件-d:显示当前目录里面子目录的属性2. 使用ls -l显示文件属性3. 修改文件的属性...

2019-07-16 17:42:42 5907

原创 Ubuntu19修改用户名

参考:Ubuntu16.04 修改用户名和密码前沿:本人是在虚拟机里安装的ubuntu系统,在进行一下操作是注意备份系统,可以先将ubuntu打包出来。在进行操作。不然操作失败你的系统就凉凉啦。我这里使用的虚拟机是VirtualBox,然后导出系统作为备份,备份后的系统如下图:如何使用VirtualBox打包ubuntu系统参考这个链接:Oracle VM VirtualBox虚拟机导出教...

2019-07-15 18:50:05 1180

原创 ubuntu终端常用快捷命令

Ctrl+A:光标跳转到命令行的行首Ctrl+E:光标跳转到命令行的行尾Ctrl+U:剪切光标前的内容Ctrl+K:剪切光标后的内容Ctrl+C:结束一个进程Ctrl+Y:粘贴内容Ctrl+L:清屏Ctrl+Alt+T:打开一个终端,当前所在目录为家目录Ctrl+Shift+T:新建标签页,当前目录为原来终端的目录Ctrl+Shift+N:新建,当前目录为原来终端的目录Ctrl...

2019-07-15 08:31:18 299

原创 ubuntu常见的关机命令和重启命令

关机命令:立刻关机:sudo shutdown -h nowsudo init 0poweroff延时关机:sudo shutdown -h 10 [“准备关机”] //10分钟后关机。方括号表示可选,用于在关机前提醒shutdown -c 取消关机系统重启命令立刻重启sudo shutdown -r nowsudo reboot延时重启:sudo shutdo...

2019-07-14 21:13:40 2706

原创 ubuntu19版本配置nfs内核服务

参考:1.百度百科–nfs2.NFS exports参数说明3.uboot 无法通过 nfs 启动 Ubuntu 18.04 内的根文件目录什么是nfs?NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文...

2019-07-14 20:54:21 1990 1

原创 ubuntu19版本配置tftp服务

参考:1.百度百科–tftp2.嵌入式linux开发之工具------tftp什么是Tftp?TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。在嵌入式linux开发:在嵌入式linux开发中,需要用到Tftp服务,主要使...

2019-07-14 18:07:23 347

原创 ubuntu19版与windows pc机的文件共享(SAMBA服务)

参考:windows 和 Ubuntu实现文件共享百度百科-samba大多数我们都是使用虚拟机来装ubuntu系统的,可以通过安装虚拟机的增强工具来开启本地的共享文件。当这个不是我写这篇文章的主要内容。主要说明如何使用SAMBA,通过局域网来实现文件的共享功能。什么是Samba?Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以...

2019-07-13 08:49:15 1259

原创 c语言头文件编写

使用头文件的作用:当前.c文件要使用其它.c文件已定义的全局函数/全局变量时,对使用的全局函数/全局变量进行声明。头文件里一般存在的内容:文件包含:文件包含语句的功能是把指定的文件插入该语句行位置,从而把指定的文件和当前的源程序文件连成一个源文件。文件包含有两种方式:双括号包含和尖括号包含。但是这两种方式是有区别的:1.使用尖括号表示在系统头文件目录中去寻找(比如#define <...

2019-07-12 14:18:37 5638 1

原创 c语言中不同的存储类型所对应的段

再看这篇博文之前可以先看下我另一篇博文:linux内存映像分配参考:1.C语言 子函数return局部变量和栈地址 机制2.嵌入式linux C语言程序设计(书)3.什么是内部链接和外部链接,什么是空链接下面的程序已运行的情况说明:#define <stdio.h>#define SUM hello //字符串常量"hello"保存在.rodata段[extern] ...

2019-07-11 19:27:24 243

原创 linux内存映像分配

一.概述:32位linux操作系统采用的是虚拟内存管理技术,使得每个进程都有独立的地址空间。该地址空间是大小为4GB的线性虚拟空间,用户所看到和接触到的都是该虚拟地址,无法看到实际的物理内存地址。使用虚拟内存的优点:安全,因为用户不能直接访问物理内存;用户程序使用的内存空间比实际物理内存空间大。4GB的进程地址空间会被分为两个部分——用户空间与内核空间。用户地址空间是0~3GB(...

2019-07-09 21:30:14 548 2

原创 c语言 -- typedef与#define

下面列出了使用typedef命名常用的格式及说明:

2019-07-09 12:20:48 212

原创 经典数组内存地址程序分析

//在x86平台下, 分析以下代码的输出结果: #include <stdio.h>int main(int argc, const char *argv[]){ int a[4]={1,2,3,4}...

2019-07-08 20:55:26 551

原创 二维数组名不同表达形式解析

这里先给出程序:#include <stdio.h>int main(int argc, const char *argv[]){ char c[2][2]; printf("c=%p\t*c=%p\t&c=%p\n\r",c,*c,&c); printf("c+1=%p\t*c+1=%p\t&c+1=%p\n\r",c+1,*c...

2019-07-08 19:24:41 529

原创 for循环的进一步分析

for循环等价于右边的while循环。首先计算表达式1的值,在计算表达式2的值,若值为真(不为0)则执行循环体一次,否则跳出循环。然后再计算表达式3的值,然后又到while出判断表达式2是否为真。当在循环体后加上break语句跳出本层循环,这样的结果是表达式3没有被执行。#include <stdio.h>int main(void){ for (int i =...

2019-07-08 15:09:10 243

原创 连续fork与分开fork的最形象化解释

首先我们要知道一点,使用fork()函数的到的子进程是父进程的一个复制品,关于复制了哪些内容这里不一一说明。这里主要说明的是,fork()函数会把父进程当前变量的值及fork()后面的代码段复制给子进程一.连续fork: 这里为了方便观察进程列表,使用while(1)让每个进程不退出int main(int argc, const char *argv[]){ pid_t pid1=0,...

2019-07-07 12:19:14 711

原创 指针、函数、数组三者组合分析

数组指针和指针数组1).数组指针:指向数组的指针,例如:char (*p)[3];List item

2019-07-06 19:12:17 282

SHT30中文资料.pdf

这是从百度文库上面下的

2019-06-03

SH1106_OLED.zip

esp8266,安信可1.2寸OLED驱动,驱动芯片为SH1106

2019-05-31

STM8串口烧录软件.zip

stm8串口烧录程序,版本是2.8.0,从官网下载的,需要的可以下载,或者去官网下

2019-05-11

esp8266_ds1302时钟封装基于安信可编译器

基于安信可编译器,自己封装了驱动ds1302的驱动。基于安信可编译器,自己封装了驱动ds1302的驱动。

2018-12-07

esp8266按键时钟调整驱动基于安信可编译器

最近在使用安信可esp8266_12F做一个oled显示时间,然后按键调整时间,虽然SDK有按键的驱动,但他不适用于调整时间,基于sdk里给的key,自己封装了用于调整时间的按键驱动,由于esp8266按键少,使用了GPIO16。GPIO0用于++,GPIO2用于--,GPIO16用于切换,GPIO16引脚使用3.3k电阻上拉。

2018-11-29

基于安信可esp8266 ds1302时钟驱动

安信可esp8266 ,ds1302时钟驱动封装,c和h文件,直接调用即可

2018-11-21

ESP8266_AT固件源码(update for sdk v0.9.4)

最近正在玩ESP8266,想让模块扫描附件的wifi,自己比较笨不知道如何写,看到AT指令有关于扫描输出附近wifi信息的方法,网上找了下AT的固件源码,官方说的是ESP8266 AT命令不是开源的,只有ESP32 AT是开源。最后在gitHub中找到了0.9.4版本的固件,特分享给大家,各位大佬有币的可以支持下,没有的话也没事,可以从这个网站下载AT固件:https://github.com/espressif/ESP8266_AT

2018-11-03

空空如也

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

TA关注的人

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