- 博客(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
原创 树莓派 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
原创 树莓派开发—继电器
继电器接口:继电器驱动电压为 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关注的人
RSS订阅