自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

莘莘的博客

阅读使人充实,会谈使人敏捷,写作与笔记使人精确

  • 博客(71)
  • 收藏
  • 关注

原创 YS-LDV7语音模块二次开发

1.YS-LDV7语音模块:工作电压:5V通信方式:串口通信单片机型号:STC11L08XE2.源码修改:(1)使用 Keil uVision4 进行修改,打开 code:(2)main.c:(此处省略部分代码)#ifdef TEST //不执行测试命令则去掉 TESTPrintCom("一级口令:小杰\r\n"); /*text.....*/PrintCom("二级口令:1、代码测试\r\n"); /*text.....*/PrintCom(" 2、开发板验证\r\n");

2021-02-24 17:18:53 1784

原创 智能家居 (4) ——网络控制端线程

目录1.工厂模式创建远程网络控制对象:(1)socketControl.c 文件(网络远程控制)(2)command.h 文件(指令方式类)2.多线程控制——远程网络控制(调试):(1)main.c 文件(主函数)1.工厂模式创建远程网络控制对象:(1)socketControl.c 文件(网络远程控制)(2)command.h 文件(指令方式类)2.多线程控制——远程网络控制(调试):(1)main.c 文件(主函数)...

2021-02-23 18:00:04 2254 4

原创 智能家居 (3) ——语音识别控制端线程

目录1.工厂模式创建语音控制对象:(1)voiceControl.c 文件(语音控制)(2)command.h 文件(指令方式类)2.多线程控制——语音控制(调试):(1)main.c 文件(主函数)3.往期文章:语音识别 > 树莓派串口 > 控制设备1.工厂模式创建语音控制对象:(1)voiceControl.c 文件(语音控制)#include "command.h" //自定义类文件#include <unistd.h>void voiceControlIni

2021-02-22 17:08:35 2437 5

原创 Linux系统编程——线程pthread初探

目录:1.引入:2.概要:3.线程:4.互斥锁:5.条件变量:1.引入:典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。

2021-02-21 15:51:29 1490 2

原创 智能家居 (2) ——工厂模式火焰报警器

目录:火焰传感器 .C 文件:蜂鸣器 .C 文件:设备类 .h 文件:主函数 .C 文件:树莓派读取火焰传感器状态 > 根据状态控制蜂鸣器火焰传感器 .C 文件:#include "equipment.h"int fireDetectionInit(int pinNum);int readFireDetectionStatus(int pinNum);struct Equipment *addFireDetectionToLink(struct Equipment *phead);s

2021-02-17 17:32:52 689 3

原创 智能家居 (1) ——工厂模式继电器控制灯

浴室灯:

2021-02-17 13:54:02 2745 6

原创 树莓派 IO 驱动

The GPIO has 41 registers. All accesses are assumed to be 32-bit.Address(总线地址)FieldNameDescriptionSizeRead/Write0x 7E20 0000GPFSEL0GPIO Function Select 032R/W0x 7E20 0000GPFSEL0GPIO Function Select 032R/W0x 7E20 0004GPFSEL1GPI

2021-02-09 21:49:40 639 3

原创 C语言按位运算

1.符号:&:与|:或~:取反^:异或2.运算:(1)打开位(置1位):flags |= MASK;flags = flags | MASK;MASK为 1 的位被打开(置1)MASK为 0 的位不改变(2)关闭位(清零位):flags &= ~(MASK);flags = flags & ~(MASK);MASK为 1 的位被关闭(置0)MASK为 0 的位不改变(3)切换位:flags ^= MASK;flags = flags ^ MAS

2021-02-09 14:18:38 483

原创 树莓派驱动框架

1.树莓派底层驱动框架:#include <linux/fs.h> //file_operations声明#include <linux/module.h> //module_init module_exit声明#include <linux/init.h> //__init __exit 宏定义声明#include <linux/device.h> //class devise声明#include <lin

2021-02-05 00:41:09 2706 6

原创 Linux文件系统目录结构

1.根目录:目录功能/bin存放系统命令,普通用户和 root 都可以执行/boot存放系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等/dev存放设备文件/etc存放配置文件/home普通用户的主目录(家目录)/lib存放系统调用的函数库/lost+found/media挂载目录,系统建议用来挂载媒体设备/mnt挂载目录,系统建议用来挂载额外设备/opt早期第三方厂商的软件存放

2021-02-03 16:19:19 232

原创 树莓派配置Linux内核源码

目录:1.获取编译所需源码:linux:tools:2.配置环境变量:3.配置config:(1)使用源码自带的 config:(2)获取当前树莓派的 config:4.编译:(1)安装必要的库:(2)执行 menuconfig:(3)编译:驱动代码的编写需要一个提前编译好的内核,编译内核就必须配置内核,配置的最终目标是生成 .config 文件,该文件指导 Makefile 去把有用东西组织成内核1.获取编译所需源码:点击进入官方网址.所需文件:linux:内核源码,可以在branches下进

2021-01-31 23:47:57 664

原创 Linux内核源码目录树结构

arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。block:部分块设备驱动程序。crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。Documentation:关于内核各部分的通...

2021-01-31 18:19:52 383

原创 Linux创建链接

1.介绍:2.创建软连接:3.创建硬连接:1.介绍:【软连接】:符号连接(Symbolic Link),也叫软连接,软链接文件有类似于 Windows 的快捷方式,它实际上是一个特殊的文件,在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。【硬连接】:硬连接指通过索引节点来进行连接,在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的,一般这种.

2021-01-31 16:45:34 2622

原创 Source Insight的使用入门

目录:1.Source Insight 新建工程2.3.解决工程文件中出现中文乱码问题:1.Source Insight 新建工程(1)点击Projetc中的New Project:(2)输入工程名,选择工程存放路径:(工程存放路径建议放在代码附近,便于查找)注意:Source Insight 的工程中不能有中文路径!!!点击ok:(3)添加工程所需代码:工程建立完毕勾选此处列出工程文件:2.3.解决工程文件中出现中文乱码问题:第一次使用 Source Insight,如果

2021-01-30 23:10:16 3244 1

原创 解决 VMware15 没有 VMnet0 的问题

1.先尝试还原虚拟网络默认设置以管理员身份打开 VMware15,打开编辑 > 虚拟网络编辑器,发现只有 VMnet1 和 VMnet8,即使勾选“将主机虚拟适配器连接到此网络”选项且 VMnet1 和 VMnet8 显示已连接,且确定保存后,但是再次打开后发现又回复原状了,并且在 Windows 系统中,右击右下角 Internet 访问,点击“打开网络 和 Internet设置 ”,选择 WLAN 选项,点击“更改适配器选项”,发现没有虚拟网卡 VMnet1 和 VMnet8打开 VMwar

2020-09-26 15:58:28 6068 9

原创 Ubuntu18.04更新国内源

1.修改 sources.list 文件,需要超级权限第一次安装 Ubuntu 还没更新 vim,建议使用 gedit 修改sudo gedit /etc/apt/sources.list注意:建议备份一下源文件,以防出错

2020-09-17 22:06:58 251

原创 Ubuntu安装VMware Tools

1.打开虚拟机,选择虚拟机选项选择 “安装 VMware Tools” 选项此文件即为 VMware Tools 压缩包:2.右击压缩包,点击 “copy to” 选项选择 Home 下的 Downloads:点击 Select:3.打开终端,进入工作目录,进入 Downloads 路径发现压缩包已保存在此路径4.输入 tar zxf 解压:解压完毕:5.用 vmware-tools-distrib 中的 vmware-install.pl 进行安装:sudo ./vm

2020-09-12 14:14:26 303

原创 树莓派交叉编译

1.什么是交叉编译?编译:在一个平台上生成该平台上的可执行代码。交叉编译:在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。我们在 windows 上编写 C51 代码,并编译成可执行代码,如 xx.hex,是在 C51 上运行,而不是在windows 上运行。我们在 ubuntu 上编写树莓派的代码,并编译成可执行代码,如 a.out,是在树莓派上运行,不是在ubuntu linux上运行。2.为什么要交叉编译?

2020-08-25 23:08:18 665

原创 树莓派开发—串口通信编程

配置:初次使用树莓派串口编程,需要配置修改 cmdline.txt 文件:cd /boot/sudo vi cmdline.txt删除【】之间的部分:dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait...

2020-08-22 21:20:09 861 1

原创 树莓派开发—超声波测距

模块介绍:VCC:正极Trig:触发Echo:回应GND:负极(接地)

2020-08-21 17:24:55 1164

原创 树莓派开发—继电器

继电器接口:继电器驱动电压为 3.3v树莓派接口:gpio readall // 输入指令查看树莓派 io 口 +-----+-----+---------+------+---+---Pi 3B--+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+--

2020-08-20 15:43:07 2856

原创 树莓派 wiringPi 库

wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等检查树莓派是否安装 wiringPi,输入:gpio -v // 会在终端中输出相关 wiringPi 的信息,否则没有安装使用 gcc 编译器时要添加库:gcc xxx.c -lwiringPiwiringPi 库函数及其应用点此....

2020-08-20 13:52:33 2884

原创 Linux库

1.什么是库?库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容。一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用。程序函数库可以使整个程序更加模块化,更容易重新编译,而且更方便升级。程序函数库可分为3种类型:静态函数库(static libraries)、共享函数库(shared libraries)、动态加载函数库(dynamic

2020-08-19 14:27:53 340

原创 Linux系统编程——socket套接字网络编程

TCP / UDP 对比1、TCP 面向连接(如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接2、TCP 提供可靠的服务,也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP 尽最大努力交付,即不保证可靠交付3、TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 是面向报文的,UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等)4、每一条 TCP 连接只

2020-08-18 16:52:45 877 1

原创 Linux系统编程——信号高级版sigaction函数

函数原型#include <signal.h>int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int

2020-08-15 10:49:01 422

原创 Windows使用 FileZilla FTP Client 连接树莓派

打开 FileZilla Client此时直接输入树莓派的 IP 地址,用户名和密码,点击快速连接:发现无法连接,即使连接成功,传输数据时也会造成丢失解决方法:使用 sftp:// 的方式,在 IP 地址前添加 sftp://点击快速连接此时连接成功...

2020-08-08 15:12:54 1214

原创 xrdp图形界面登录树莓派

1.树莓派安装 xrdp ,用串口或 ssh 方式登录树莓派,输入指令sudo apt-get install xrdp2.windows 打开远程桌面连接3.输入树莓派的 IP 地址,连接4.输入树莓派账号密码5.登陆成功

2020-08-07 22:54:04 823

原创 网络SSH方式登录树莓派

1.确保树莓派已入网2.通过串口打开树莓派的 SSH 功能输入指令:sudo raspi-config如图:选择 Interfacing Options,按下 Enter如图:选择 SSH,按下 Enter如图:选择 Yes,按下 Enter如图:Ok如图:按键盘左右方向键选择 Finish,按下 Enter3.打开 MobaXterm 点击 Session...

2020-08-07 13:30:59 294

原创 固定树莓派的IP地址

1.开启树莓派,输入指令sudo nano /etc/rc.local2.在 exit0 前添加句段ifconfig wlan0 192.168.x.xxx // 在 ifconfig wlan0 后面添加想要固定的 IP 地址如图:按 ctrl + o 保存提示是否写入,按 Enter 确定按 ctrl + x 退出3.重启后 ifconfig 验证是否成功...

2020-08-06 21:45:57 2480 1

原创 配置树莓派连接wifi入网

1.登录树莓派2.输入指令sudo nano /etc/wpa_supplicant/wpa_supplicant.conf3.添加配置信息ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=CNnetwork={ ssid="你的无线网名字" //你家的 WiFi 的名字 psk="密码" //你家的 WiFi 密码 key_mgmt=WP

2020-08-06 16:01:01 330

原创 串口登录树莓派

默认情况,树莓派与蓝牙连接,需要断开蓝牙连接,通过串口进行数据通讯,具体步骤如下:1.打开SD卡的磁盘2.打开config.txt文件2.修改config.txt文件将以下内容添加在最后并且保存

2020-08-06 14:07:13 626 1

空空如也

空空如也

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

TA关注的人

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