自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux基本操作命令

1、打开终端:ctrl+alt+t2、清屏:ctrl+l3、在终端在退出锁定:ctrl+c4、目录:又称为文件夹,是包含所有的文件5、目录创建规则: 1、大小是256 2、不能包含特殊字符 3、见名知义 6、文件:在计算机中一切皆文件 7、在windows中区分文件可以通过扩展名来区分 .exe .txt .ppt8、在Linux中文件没有扩展名 可以通过颜色区分 也可以通过命...

2021-04-10 15:17:23 479 1

原创 docker学习之docker镜像加速器

目录切换的docker的配置文件夹编辑daemon.json文档重启docker我们在安装完docker之后,运行hello-world镜像,在首次运行的时候下载镜像可能会非常的缓慢,这是因为docker它的默认下载地址是国外的地址。我们在国内去使用国外的网址下载东西也会非常的缓慢,我们有时候可能会用到加速器啥的。当然,我们在配置好docker后,也可更改相应的配置文档,让docker访问国内的镜像源,这样速度就会相对于国外的会快很多。 切换的docker的配置文件夹 cd /e

2021-03-26 18:25:45 663

原创 docker学习之如何删除docker中的镜像

目录查找需要删除的镜像直接删除查询所有docker容器停掉所需要删除镜像的容器删除镜像镜像成功删除注意事项:在安装调试完毕docker之后,想要删除一些已经下载的镜像。发现怎么都删除不掉,看来删除docker的镜像,没有我们想想中的那么简单。 查找需要删除的镜像 sudo docker images如果我们要删除hello-world这个镜像,可以看到他的IMAGE ID为bf756fb1ae65 。 直接删除 如果我们直接用dock...

2021-03-26 15:05:16 36243 2

原创 docker学习之Ubuntu系统部署docker

目录安装环境:支持安装docker的Ubuntu操作系统版本卸载旧版本的docker安装docker所需要的依赖包添加Docker的官方GPG密钥:设置docker的镜像仓库安装docker引擎测试docker卸载Docke​​​​安装完毕。 安装环境: Linux系统:Ubuntu 18.04 支持安装docker的Ubuntu操作系统版本 Ubuntu Groovy 20.10 Ubuntu Focal 20.04(LTS) Ubuntu

2021-03-26 13:51:22 3310 4

原创 树莓派串口转USB无法连接成功

解决方法: 运行命令:sudo raspi-config 设置Interface Options 使能Serial Port完成

2021-03-05 12:54:37 1069

原创 libxml常见错误:fatal error: libxml/parser.h: No such file or directory解决方法

在安装sudo apt-get install libxml2-devel.x86_64但是编译时错误为:fatal error: libxml/parser.h: No such file or directory#include <libxml/parser.h>在/usr 下查找find /usr -name parser.h/src/kernels/2.6.32-696.el6.x86_64/include/linux/parser.h/inc.

2021-01-27 10:33:30 7681 3

原创 mosquitto常见问题及其解决办法

目录问题一:问题描述:问题一解决办法:问题二:执行mosquitto客户端程序时出现找不到动态库:libmosquitto.so.1问题二解决办法:​​​​​​​ 问题一:问题描述: 编译mosquitto源码时,出现以下问题:make[1]: 进入目录“/home/jason/mosquitto-1.2/man”xsltproc mosquitto.8.xmlwarning: failed to load external entity "/usr/share.

2021-01-27 10:22:38 3663 1

原创 使用串口转USB连接树莓派

目录所需工具接线方式驱动准备Windows串口检测SecureCRT连接设置登录系统进入树莓派系统在烧录好树莓派系统之后,我们可以通过三种方式来实现进入树莓派的系统:第一种是在烧系统的时候就把WiFi的配置文件写入系统,使树莓派可以通过WiFi上网,完成ssh的连接;第二种是在烧好系统之后用网线连接到树莓派的有线网口,完成ssh的连接;第三种是通过串口转USB连接到ssh。本文主要介绍如何通过串口转USB来连接到本地计算机,完成相应的配置。 所需工具

2020-12-10 10:37:22 1797

原创 Linux移植内核之后ifconfig错误:ifconfig: SIOCSIFADDR: No such device

主要问题 学习内核移植之后发现移植后的系统启动之后无法使用eth0即dm9000网卡,只有本地回环的lo网口。查阅资料之后发现指自己的dm9000网口的驱动没有编译使能。 ifconfig错误提示:SIOCSIFADDR: No such device 解决方法 添加DM9000网卡设备支持 通过DM9000网卡原理图, 我们可以知道网卡INT使用EINT7管脚,CMD连ADDR2,CS#片选管脚连了NGCS4,以及数据位数为LDATA0~LDATA15(16位模式..

2020-11-16 17:09:01 6017 1

原创 Linux驱动学习之hello模块的实现

内核模块简介 Linux 内核模块是一种可以被内核动态加载和卸载的可执行程序,通过内核模块可以扩展内核的功能,通常内核模块被用于设备驱动、文件系统等。如果没有内核模块,需要向内核添加功能就需要修改代码、重新编译内核、安装新内核等步骤,不仅繁琐,而且容易出错,不易于调试。Linux内核是一个整体结构,可以把内核想象成一个巨大的程序,各种功能结合在一起。当修改和添加新功能的时候,需要重新生成内核,效率极低。为了弥补整体式内核的缺点,Linux内核的开发者设计了内核模块机制。从代码角度看, 内核模块是..

2020-11-12 22:10:46 935

原创 repoline的问题:insmod一个简单ko,出现错误insmod: ERROR: Invalid module format

目录错误问题解决方法:验证​​​​​​​ 错误问题 在Ubuntu14.04在加载自己的hello写的hello驱动时出现了如下的错误:insmod: ERROR: could not insert module kernel_hello.ko: Invalid module format通过查看sudo dmesg -c 查看最新的内核打印信息发现如下的出错的原因:缺少retpolineversionmagic'4.4.0-142-genericSMPmod...

2020-11-12 17:02:20 1429

原创 Busybox源码编译安装

目录Busybox简介Busybox安装步骤下载busybox解压busybox设置编译环境make menuconfig编译安装 Busybox简介 Busybox是一个开源项目,遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个很小的可执行程序中,可以用来替代GNU fileutils、shellutils等工具集。Busybox中各种命令与相应的GNU工具相比,所能提供的选项比较少,但是也足够一般的应用了。Busybox主要用于嵌入式系...

2020-10-29 21:02:50 4059 3

原创 mkimage安装及其使用方法

安装命令:sudo apt-get installu-boot-tools -y

2020-10-28 21:39:52 5691

原创 buildroot制作交叉编译器

目录交叉编译制作方法制作方法及遇到的问题的解决方法下载相应包安装buildroot相关配置buildroot相关配置Build options配置Toolchain配置保存配置安装检验FL2440校验OK制作成功! 交叉编译   在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。  交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软件,都需

2020-10-22 22:24:21 3492

原创 FL2440开发板简介及其烧录

目录FL2440开发板简介FL2440开发板FL2440硬件资源列表开发板存储系统:FL2440开发板烧录FL2440烧录流程:烧录准备工作烧录文件: 硬件准备:烧录过程J-link操作:u-boot下烧录:开发板启动流程: FL2440开发板简介 FL2440开发板 FL2440硬件资源列表 部件 型号 说明 CPU ...

2020-10-19 22:54:43 1158

原创 【Linux】多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)

目录同步与互斥互斥锁(同步)条件变量(同步)读写锁(同步)自旋锁(同步)信号量(同步与互斥)同步与互斥现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问或使用同一种资源; 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。【同步】:  是指散步在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:两..

2020-08-21 23:53:12 592

原创 C编程实现字符串移位操作

基本原理 先malloc一个n个字节大小的buff, char * buf =(char*) malloc(n);其中n为字符串求要左移的位数; 先将要求左移的字符串str的前n个字节的数据拷贝至我们刚刚创建的buf中; 利用memmove函数将str的第n个字节的数据移动至str的开始处; 在利用memcpy或strncpy将buf中的数据拷贝至str的str[strlen(str) - num]地址处。 图示 C编程实现代码 /*...

2020-08-15 23:33:01 2762

原创 Linux环境下——实现xml文件解析

libxml库安装 直接使用shell命令安装 sudo apt-get install libxml2 sudo apt-get install libxml2-dev 使用源码安装 现在官网下载源码,然后执行源码安装三部曲1)$./configure 2)$make 3)$sudo make install ...

2020-08-12 21:44:58 4678

原创 使用inipaeser利用C编程实现配置文档的读写

目录源码gitHub下载地址:GitHub链接inipaeser库的使用方法inipaeser配置文档的基本书写格式使用ini配置文件实例inipaeser.h中的基本APIdictionary.h中的基本APIC解析实例最近,再利用树莓派实现4Gppp拨号时,自己在写参数解析的函数时发现有太多的参数需要输入,如串口的波特率、设备名、奇偶校验、停止位等等......如果所有参数都需要我们一一输入然后在一一解析实在是太麻烦了,百度发现可以使用inipaeser库来解析出我们写.

2020-08-11 16:38:16 743

原创 cJSON详解及其C函数接口使用

目录JSONJSON语法JSON语法是JavaScript对象表示法语法的子集:JSON的三种语法:JSON两种结构:CJSON介绍cJSON源码cJSON数据结构与常用接口数据结构定义常用接口cJSON_ParsecJSON_DeletecJSON_PrintcJSON_VersioncJSON_GetArrayItem与cJSON_GetObjectItem()类似的接口:类型判断接口创建cJSON对象接口添加cJSON对象到链

2020-07-29 13:05:02 8699 1

原创 树莓派环境下利用mosquitto库使用C编程完成与阿里云的上行通信(Subscribe))

目录Moswuitto库Mosquitto基本API常用函数介绍C编程实现代码Head FileC Source FileMake File测试案例连接前阿里云设备状态连接后运行程序阿里云设备运行状态​发送下行消息运行结果树莓派下配置mosquitto详解,有关于如何在树莓派下配置mosquitto大家可以参考看一下这篇博客。树莓派下mosquitto的shell命令的使用,有关如mosquitto的shell命令的使用...

2020-07-28 21:39:13 1646

原创 在树莓派环境下利用mosquitto完成与阿里云的上下行通信

目录使用mosquito_sub订阅阿里云设备的topic完成下行通信相关命令:数据测试:发送下行数据发送上行数据树莓派配置mosquito,有关于树莓派安装和配置mosquito的相关操作,大家可以看看这篇博客。MQTT登陆阿里云的相关配置,有关于使用MQTT/mosquito与阿里云的通信的相关账号、密码等相关信息,大家乐意阅览一下这篇博客。 使用mosquito_sub订阅阿里云设备的topic完成下行通信 相关命令: 数据测试: ​​​​​

2020-07-27 11:15:23 826

原创 C经典笔试题之统计一个无符号数二进制形式的0和1的个数

统计一个无符号数中的1的个数 方法一: /*方法一: * * eg: * * 9--> 1001 * * & *----------------------- * 9-1--> 1000 * *----------------------- * 1000 *一次类推,直到:num = 0,为止. * * *//**************************************************..

2020-07-24 23:38:04 749

原创 MQTT连接阿里云

基于上篇博客(树莓派3B配置MQTT环境)我们介绍了如何在树莓派3B环境下安装和配置使用MQTT,接下来我们介绍一下如何在windows环境下使用MQTT.fx来连接自己在阿里云创建的设备。 在阿里云上创建产品及设备的教程 创建账号并登录 阿里云官网:阿里云官网 创建产品及设备 点击左侧的栏目找到“产品与服务”,在里面继续找到“应用与服务下面的”“物联网平台”,依次找到《设备管理》《产品》,然后“创建产品”。 创建产品 添加设备 .

2020-07-21 16:58:08 2989 1

原创 树莓派3B环境下安装及配置Mosquitto

目录MQTT源码下载解压源码MQTT源码安装配置启动代理服务用mosquitto进行一个简单的发布/订阅:mosquitto_pub和mosquitto_sub 常见命令参数说明mosquitto_pubmosquitto_sub​​​​​​​基于上篇博客(MQTT入门介绍)我们简单介绍了MQTT相关信息及其工作原理,本篇博客我们主要介绍如何在树莓派3B环境下安装及配置及使用MQTT。 MQTT源码下载 sudo wget http://mosqu..

2020-07-20 16:53:50 958

原创 MQTT入门详解

目录MQTT简介设计规范主要特性MQTT协议原理MQTT协议实现方式网络传输与应用消息MQTT客户端MQTT服务器MQTT协议中的订阅、主题、会话MQTT协议中的方法MQTT协议数据包结构MQTT固定头MQTT可变头Payload消息体 MQTT简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议.

2020-07-20 15:39:51 641

原创 C++/C语言sizeof关键字详解

目录sizeof关键字主要功能常见用法与基本数据类型的相关的内存空间大小的求解与数组相关的内存空间大小的求解在数组的定义处在具体函数的中运行实例与指针的相关的变量所占内存空间大小的求解运行实例与结构体相关的变量所占内存空间大小的求解运行实例与枚举相关的变量所占内存空间大小的求解运行实例与联合体(union)相关的变量所占内存空间大小的求解​​​​​​​运行实例 sizeof关键字 sizeof 为C语言的一个主要关键...

2020-07-19 21:58:25 3442 2

原创 嵌入式硬件基础之SPI总线详解

SPI(ISerial Peripheral Interface)简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。 基本协议 SPI协议概括 SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中..

2020-07-15 12:05:56 3922 1

原创 嵌入式硬件基础知识之I2C总线

目录I2C总线简介主器件与从器件工作原理主要特点数据传输字节格式应答响应时钟同步I2C 仲裁传输模式快速模式高速模式I2C协议标准代码起始信号&停止信号起始信号代码停止信号代码发送一个(8bit)字节读取一个字节应答 I2C总线简介 I2C 总线是由 Philips 公司开发的一种简单、双向二线制同步串行总线。它只需要两根线 SDA 、SCL 即可在连接于总线上的器件之间传送信息,I2C 总线数据传输速率在标...

2020-07-13 23:26:21 1779

原创 如何修改树莓派系统时间

当我们刚刚烧录好树莓派系统之后,使用date命令就可以看出时间与本地时间不相同,我们可以使用以下命令来更新自己树莓派的时间。 修改时区及时间 输入以下命令 sudo dpkg-reconfigure tzdata 选择Asia回车,我们属于亚洲时区选择上海,回车配置成功然后输入date命令,时区和时间就都对上了...

2020-07-13 09:17:27 7429

原创 实现4G模块EC20在树莓派系统下的PPP拨号上网

PPP协议 什么是PPP协议 PPP协议(Point-to-Point Protocol)是一种网络协议中最为基础的协议,工作于数据链路层,它是为在同等单元之间传输数据包这样的简单链路而设计的,这种链路提供了全双工操作,并按照顺序传递数据包。PPP为基于各种主机,网桥和路由器的简单连接提供一种共通的解决方法。PPP协议包括以下三个部分:数据帧封装方法 链路控制协议LCP,(Link, Control Protocol):它用于对封装格式选项的自动协商,建立和终止连接。探测链路错误和..

2020-07-12 12:09:40 4261 6

原创 AT命令介绍和简单使用

目录AT指令集简介AT指令常用的应用场景AT指令集优点AT指令和ppp协议区别busybox的简介及其安装busybox下AT指令集的使用方法4G模块检测busybox下AT指令集的使用拨打电话和发送短信拨打电话:发送短信 AT指令集简介 AT(Attention)指令集是从终端设备(Terminal Equipment, TE)或数据终端设备(Data Terminal Equipment, DTE)向终端适配器(Terminal Adapter.

2020-07-09 00:29:00 13584

原创 树莓派C编程实现继电器控制

目录树莓派的引脚信息继电器的基本知识继电器引脚信息继电器电路图连接继电器工作原理C编程控制实现运行程序运行结果说明: 树莓派的引脚信息 继电器的基本知识 继电器引脚信息 nc:常闭端no:常开端com:公共端s/in:输入控制信号端vcc:连接树莓派的VCCgnd:连接树莓派的GND继电器封装图片: 继电器电路图连接 VCC、GND、S/IN与树莓派上对应的VCC、GND、以及自己想要编程控...

2020-07-08 21:28:47 1696

原创 串口通信的基本原理详解

目录串口通信串口通信的两种基本方式异步数据的数据发送过程异步通信的数据接收过程9针串口(DB9)TTL与RS232区别TTL:RS232:串口通信的数据格式通讯方式偶校验与奇校验停止位波特率(波特率就是每秒钟传输的数据位数)典型的串口通讯标准 串口通信 串行接口简称串口,也称串行通信接口(通常指COM接口):是采用串行通信方式的扩展接口。 串口通信的两种基本方式 1、同步通信(SYNC:synchronous data com.

2020-07-01 11:00:01 28460 2

原创 树莓派断电之后再次上电无法连接到WiFi

操作方法 wpa_supplicant.conf文件编辑 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf在wpa_supplicant.conf文件中添加:country=CN ctrl_interface=DIR= /var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="WiFi名称" psk="Wi...

2020-06-29 16:33:42 2656 3

原创 树莓派3B-buster更换国内源

树莓派在烧录完原始系统后,其使用的源默认为国外源,我们在下载或更新软件的时候速度非常慢,等的人非常着急。我们可以为其更换国内源,例如:我下面使用的中科大的源,就非常不错,特别好用。 第一步先备份自己所需要修改的配置文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

2020-06-27 11:45:37 2539 2

原创 树莓派原装系统烧录

目录准备工具及软件烧录过程SD卡格式化烧录系统secure CRT 登录WI-FI连接查看树莓派的自动获取IP地址secure CRT登录 准备工具及软件 sd卡格式化工具:SD Card Formatter 系统烧录软件:Win32DiskImager sd卡一张 网线(不一定用到,如果Wi-Fi连接失败需要用到) 还有我们的主角(树莓派3B) 烧录过程 SD卡格式化 1.先将sd卡插入电脑2.用SDCard Format...

2020-06-26 20:44:43 941

原创 Linux基本命令总汇(二)

用户权限:su 切换用户账户格式:【su 用户名 】【su】 切换到root【su root】 切换到root【su -】 切换到root用户 同时切换到root目录添加组:【groupadd 组名】 添加组 需要用户权限删除组【groupdel 组名】 删除组 需要用户权限和清空组成员修改用户所在组:【usermod -g 组名 用户名1 用户名2】需要用户权限添加用户:【useradd -d /home/目录 用户名 -g 组名 -m】新建用户 设置用户主目录和设

2020-06-19 18:21:16 171

原创 Linux基本操作命令总汇(一)

打开终端:ctrl+alt+t 清屏:ctrl+l 在终端在退出锁定:ctrl+c 目录:又称为文件夹,是包含所有的文件 目录创建规则:1、大小是2562、不能包含特殊字符 3、见名知义6、文件:在计算机中一切皆文件7、在windows中区分文件可以通过扩展名来区分 .exe .txt .ppt8、在Linux中文件没有扩展名 可以通过颜色区分 也可以通过命令来区分 file 文件名9、在Linux中文件分为: 普通文件 目录文件...

2020-06-19 18:18:03 214

原创 基于树莓派的温湿度获取项目总结

目录项目目的实现要求项目实现基本流程图实现过程中遇到问题及其解决方案代码地址 项目目的 利用树莓派采集某一特定环境的温湿度,并上报服务器。可实现计时上报、定时采样等功能。具体应用实例:只能温控系统、车内温度采样、还可以利用3G或4G技术实现人烟稀少区域的温度检测等。 实现要求 基于树莓派的温度获取,并且能够上包服务器; 如果上报失败或客户端与服务器断线,要求要把本次采样的数据存储的数据库; 能够实现定时或计时采样数据和发送数据; ..

2020-06-19 12:14:28 2128

空空如也

空空如也

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

TA关注的人

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