自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 STM32串口中断接收

本次是结合项目,来总结下在stm32CubeIDE开发环境下关于串口接收数据问题;项目背景:利用MODBUS通讯协议串口中断的流程为:1.在main.c文件中对串口进行初始化操作 MX_USART1_UART_Init(); MX_USART2_UART_Init();2.对中断回调函数进行改写void HAL_UART_RxCpltCallback( UART_HandleTypeDef *UartHandle )记住在回调函数里要重新打开中断本次项目中串口接收采取的是一个字节

2022-04-26 11:04:29 7102

原创 国产银河麒麟系统 进入到initramfs的解决办法

今天由于自己的误操作,强制性关机。以至于系统分区损坏,重启后进入到initramfs 模式,上网搜寻了相关解决办法,但是都没有解决。后面才发现是自己损坏的分区跟网上其他博主的不一样导致的,我的是 sda3分区出现了损坏所以我的修补命令是fsck /dev/sd3 -y大家要依据自己的情况来敲打命令...

2022-01-13 09:57:24 3332

原创 linux 下静态编译 QT 5.15.2

编译环境:ubuntu18.04.5QT下载网址解压部分就不过多赘述了。直接进入到重点环节:编译部分以下是代码:sudo ./configure -prefix /opt/Qt5.15.2_static -release -static -c++std c++11 -qt-zlib -fontconfig -system-freetype -qt-libpng -qt-libjpeg -no-xcb -skip qtdeclarative -skip qtandroidextras -nomake

2022-01-11 11:39:19 1232

原创 编译ekho源码中 test_ekho.cpp的命令行参数

目前因任务需求,所以需要实现在linux下的文字转语音的功能,但是又不想去付费讯飞等平台。因此在网上找寻相关开源的语音引擎。一开始是试了espeak,但是实现后的效果很差,因为eSpeak使用“共振峰综合”方法。因此效果就有点生硬。实际使用的话,感觉不可行。后面又测试了ekho的。ekho...

2021-12-31 11:56:32 564

原创 ubunu 网络连接不上

在虚拟机里使用ubuntu的时候 有时候会出现网络断掉的情况,在上网查询的时候,发现了直接可以用几行命令就解决此问题。一共是四步:首先是停止网络服务sudo service network-manager stop然后进行备份sudo cp /var/lib/NetworkManager/NetworkManager.state /var/lib/NetworkManager/NetworkManager.state.bak再然后是进行删除sudo rm /var/lib/Networ

2021-11-02 09:02:19 175

原创 linux 下 QT 运行Curses库 链接库报错

在将Curses库按照网络上的方法加入到.pro中时,运行都是报错后面才发现错误就只是空不空格LIBS+=-L/usr/lib -lcurses谨记 上面-L和后面的路径之间不要空格再重新编译 就不会报错了

2021-10-31 11:25:55 160

原创 Linux多线程

本次我们一起来学习一下有关线程方面的知识。一、线程的定义:在操作系统原理的术语中,线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,所有的线程都是在同一进程空间运行,多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。 一个进程可以有很多线程,每条线程并行执行不同的任务。

2021-07-28 10:42:05 88

原创 linux 文件拷贝 文件io

我们这次要来实现一个需求:实现文件拷贝功能,譬如将hello.txt 拷贝一份叫做 hello.log代码如下:#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include<string.h>int main(){int fd=-1,rd=-1;int fd2=-1

2021-07-18 20:15:27 114

原创 算法之回文数

也许你会看到这样一道算法题:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。我们该如何思考这种题目呢?可以参考下面思路:首先,我们应该处理一些临界情况。所有负数都不可能是回文,例如:-123 不是回文,因为 - 不等于 3。所以我们可以对所有负数返回 false。除了 0 以外,所有个位是 0 的数字不可能是回文,因为最高位不等于 0。所以我们可以对所

2021-07-17 14:04:08 338

原创 Linux之文件I/O读写文件

这次我们一同来完成一个小题目:用C程序创建一个hello.txt的文件,然后写入Hello World,然后再读出来打印。代码部分:#include<stdio.h>#include<sys/types.h>#include<string.h>#include<fcntl.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>int ma

2021-07-17 13:56:28 215

原创 C语言之结构体对齐

本次让我们来一起学习一下C语言中我们该如何将结构体内存对齐呢?什么是结构体?struct A{ //struct是关键字, A是结构体标志 int a; //a,b是结构体成员列表 char b;}s1; //s1是结构体变量在这里要注意三点:1.一般情况下,声明出现三个部分的两个部分即可(标志或者变量可省略)2.结构体可以包含其他结构体,也可以包含指向自己的指针3.结构体互相包含时,需要对其中一个进行不完整声明结构体对齐规则:1.计算结构体大小不是元素单纯

2021-07-17 10:09:05 986

原创 Linux之进程通讯

在linux下有种通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。其包含:半双工管道、命名管道、消息队列、信号、信号量、共享内存、内存映射文件,套接字等等。1.管道管道的创建:#include <unistd.h>int pipe (int fd[2]); //返回:成功返回0,出错返回-1 fd参数返回两个文件描述符,fd[0]指向管道的读端,fd[1]指向管道的写

2021-07-13 09:49:31 96

原创 Linux之makefile 文件

本次我们来一起来研究下在Linux中,当我们要一次有多个.c文件需要执行时,我们该怎么做?不可行的办法就是我们人工操作去一个个编译,耗费过多的时间不说,其中的前后密密麻麻的逻辑也会让人头痛。这时候就要用上Makefile 。那么我们该怎么操作呢?首先先让我们准备好三个.c文件,两个.h文件分别是 too1.c、 too1.h、 too2.c、 too2.h、main.c代码内容分别如下:too1.c#include<stdio.h>#include"too1.h" void

2021-07-08 19:14:29 176

原创 Liunx之bash正则表达式(2)

本次我们一起来学习一下有关正则表达式的一些操作命令。我们知道grep命令可以提取符合条件的行,那么如何提取符合条件的列呢?这时候我们就要用到cut命令。cut [选项] 文件名-f

2021-07-07 10:14:55 141

原创 Linux之bash正则表达式

接来下我们会来学习有关bash编程的内容,首先让我们一起来学习正则表达式。在介绍正则表达式之前,我们要提及一下通配符。他们两者的区别是什么?前者是用来在文件中匹配符合条件的字符串,正则是包含匹配的;后者是用来匹配符合条件的文件名,通配符是完全匹配。首先让我们来看下 *我们先来看看这个命令grep "1*" test.txttest.txt是我用来测试的文档。想问问大家,你们觉得匹配出的结果是什么?会是所有包含“1”的行内容么?答案并不是。屏幕上会显示所有内容 包括空白行。如果我们想匹

2021-07-06 15:13:38 436

原创 Linux之bash环境配置文件

环境配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH PS1 HISTSIZE HOSTNAME等默认环境变量。那么在Linux中,如果我们想要自定义命令永久生效,就需要写进相关的配置文件中。然后进行重启才能生效。那么我们怎么可以避免重启这一步呢?我们可以使用source 命令 就可以直接让配置文件生效。使用方法: source 配置文件名或者. 配置文件名 (注意配置文件名前要空格)系统中大概有几个环境配置文件/etc/profile/etc/profile.d/*

2021-07-06 14:32:24 186

原创 LINUX之数值运算

本次我们来介绍下Linux中的数值运算。首先我们大家要知道,在Linux中默认变量的类型是字符串类型的。所以当我们aa=13bb=2cc=$aa+$bbecho $cc大家觉得以上输出会是15么?答案并不是,不信 你动手敲一敲。进入正题,那么我们该怎么做才能实现15的结果呢?首先要向大家介绍一下declare 声明变量类型+/-"-“可用来指定变量的属性,”+"则是取消变量所设的属性-f仅显示函数。-r将变量设置为只读。––-x指定的变量

2021-07-05 09:17:34 1039

原创 Linux之bash预定义变量

键盘接收输入read命令格式:read [选项] [变量名]选项:-p“提示信息” # 在用户等待read输入时输出的提示信息-t秒数 # 指定命令等待的时间,超过此时间还未收到用户输入,则终止命令-n字符数 # read命令只接收指定的字符数就开始执行,限制用户输入––-s# 隐藏输入的数据,适用于密码等机密信息的输入情况让我们来看看几个例子结果如下:结果如下:当我输入的时候并没有显示,但是当我按回车键打印的时候会显示

2021-07-05 08:33:57 80

原创 Linux之bash位置参数

本次我们来介绍下有关位置参数的知识下表是一些参数变量$n$0代表命令本身,1−9代表接受的第1−9个参数,10以上需要用括起来,比如1-9代表接受的第1-9个参数,10以上需要用{}括起来,比如1−9代表接受的第1−9个参数,10以上需要用括起来,比如{10}代表接收的第10个参数$*代表接收所有的参数,将所有参数看作一个整体$@代表接收的所有参数,将每个参数区别对待––$#代表接收的参数个数这是编写的一个简单参数脚本当我们执行脚本时,只打印出了命

2021-07-02 09:14:47 474

原创 Linux之BASH环境变量

首先我们要明确一下环境变量是啥?环境变量:我们上一篇中的用户变量是只在当前shell中生效。但环境变量是在当前shell和这个shell的所有子shell中生效,如果把相应的环境变量写入相应的配置文件中,那么这个环境变量就会在所有shell中生效首先我们如何在我们原有的shell基础上 再开一个子shell呢?我们直接在命令行敲击相应的bash即可例如:这个就是相当于开启了子shell,而我们之前的是父shell我们可以敲击命令pstree 来查看进程这时候 如果我们敲击“exit”命令 退

2021-07-01 19:51:58 1521

原创 Linux之用户自定义变量

为什么我们需要变量这个东西呢?因为当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就需要把它存放在一个变量当中。使用变量可以保存有用信息,让系统获知用户相关设置,也可用于保存暂时信息。变量设置规则:1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头。在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则需要将类型改成数值型。2.变量用等号连接,等号左右两侧不能有空格3.变量的值如果有空格,需要使用单引号或者是双引号包括。4.在变量的值中,可以使用“\”转义符

2021-07-01 10:48:27 3771

原创 C语言之指针

本文来介绍下C语言的指针,都说指针是C的灵魂,如果学C不会指针,大概就学了个“假”C语言。首先 我们要明确两个概念,指针和指针变量。指针:变量的地址是该变量的指针指针变量:变量的地址另外“*”是取值操作;“&”是取地址操作那么我们如何定义一个指针变量呢?采取的方法就是“*” 一般形式是: *变量名下面都是合法定义:float *pointer_3;//pointer_3是指向float型变量的指针变量char *pointer_4;//pointer_4是指向f字符型变量的指针变

2021-06-29 09:58:07 88

原创 Linux 之bash(3)

本次继续上文5.多命令顺序执行在Linux中 当我们一次要执行多个命令时,会有个执行顺序命令1;命令2(命令之间用分号隔开) 命令之间是没有任何逻辑关系的2.命令1&&命令2 逻辑与 当命令1正确执行,则命令2才会执行当命令1不正确执行,则命令2不会执行3.命令1||命令2 逻辑或 当命令1正确执行,则命令2不会执行当命令1不正确执行,则命令2才会执行5.1 管道符命令1|明令2用法:命令1的正确输出作为明令2的操作对象命令1必须有正确

2021-06-27 18:32:25 100

原创 Linux之Bash(2)

本次接着上文继续介绍bash4.输出重定向重定向的意思就是将输出改成输出到你所指定的文件或者设备下,例如我们将日期的显示改成输出到abc文件下如果想要继续追加就改成 >>如果想要保存错误输出例如 lst 是我输出的一个错误命令 ,我将这个错误命令指定输出到abc文件中,2和>之间不可以空格如何将正确与错误命令都保存在一个文件中呢?我们可以***命令 &>***或者 命令 &>>或者 命令 >文件 2>&1或者

2021-06-27 09:55:24 101

原创 Linux 之Bash(1)

本次文章来介绍Linux中的bash 命令这是编写的一个简单的bash脚本其中注意的要点:#!/bin/Bash这一句最好都带上

2021-06-27 09:19:25 101

原创 Linux之解压 压缩命令

本文主要来介绍下linux中的tar、zip 以及gzip 命令首先是gzip 用于生成 .gz压缩包要注意的两点是:1.gzip命令不保存原文件2.gzip 只能压缩文件而不是压缩目录用法:但是原文件不存在解压:bzip2 是gzip的升级版 压缩后可以保留原文件利用-k命令解压:若想保留压缩文件 依然是加上-k 命令即可zip:用法zip 压缩文件zip 压缩目录unzip 可以解压文件和目录tar:压缩目录压缩并打包目录解压:...

2021-06-26 10:21:22 53

原创 Mixly 自定有OLED

在这里向大家介绍下如何在Mixly 上制作第三方用户库,就拿OLED 这个为例子。硬件准备:Arduino 开发板 x1OLED 显示屏 x1软件平台Mixly实现步骤:新建文件夹 里面包含以下三个文件夹(block、 generator 、language 和 xxx.xml 这里的xxx是你们自己定义的名字)block/xxx.js文件定义了你定制的模块的样子。generator/xxx.js文件定义了每一个图形化模块对应的 Arduino C语言代码。block和genera

2021-05-14 08:38:06 1994

原创 mind+第三方用户库(遥感传感器)

本篇主要分享一下如何在Mind+上制作第三方用户库,希望可以给到大家一些灵感。1、获取模板库首先下载模板库:https://gitee.com/dfrobot/ext-oled12864.git下载后解压得到一个文件夹,删除其中的mpext文件,修改文件夹名字为:ext-led,英文数字或下划线,不要用中文和特殊符号2、修改config.json删除其中files字段部分代码修改name和description对应字段,英文部分可以 谷歌翻译修改author(作者)和email(邮箱)为自己

2021-05-10 21:23:00 1212

原创 AI实现皮影戏

先辈门通过手艺演绎着皮影戏,同样我们也可以通过AI方式来实现。为了实现皮影戏,可以通过PaddleHub提供的人体骨骼关键点检测库完成将人体姿态检测,同时映射到皮影身上,让皮影动起来。通过人体骨骼关键点检测后标注出了关键点位置实现步骤:1.安装依赖库首先我们需要通过pip安装PaddlePaddle和PaddleHub,安装完后,我们就可以通过PaddleHub来安装人体骨骼关键点检测模型 human_pose_estimation_resnet50_mpii。关键代码如下pose_estima

2021-05-07 09:30:46 1237

原创 物联网之OPC UA

在介绍OPC UA之前,我们先了解下OPC基金会。OPC:OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、

2021-05-05 09:16:05 629 1

原创 模型之human_pose_estimation_resnet50_mpii

这次主要来讲述下如何运用人体姿态模型。实现平台:pythoncharm前期准备:安装依赖库:PaddleHub (一开始安装的时候失败了,后面上官网才发现,安装这个对pip的版本有要求)这里是代码部分:import cv2import paddlehub as hubpose_estimation = hub.Module(name="human_pose_estimation_resnet50_mpii")result = pose_estimation.keypoint_dete

2021-04-30 09:52:13 1098

原创 响应式web mqtt应用

本教程是制作个性化控制web页面来并且通过MQTT实时控制掌控板以此来实现相应功能。准备的硬件材料有:mind+ 掌控板 x1软件平台:mind+操作步骤:1.建立控制网页操作页面布局比较简单,大家可以自行发挥美化。<script> $(function(){ $('#ledRedOn').click(function(){ $.get("http://192.168.45.1:8080/publish?topic=2018A14137/A&msg=le

2021-04-27 17:32:12 269

原创 Arduino串口发送数据+掌控板串口接收数据并上传阿里云

话不多说,直接进入正题。所用到的硬件部分是:Arduino 开发板x1mind+ 掌控板x1DHT11 温度传感器x1面包板x1(也可不用) Arduino 板引脚接线:Arduino 掌控板VCC VCCGND GNDTX RXRX

2021-04-23 09:35:00 494

原创 esp8266+云服务器+mysql 温度数据采集上报

这里写自定义目录标题本文主要讲述如何通过在云服务器上搭建Mysql数据库,然后利用MQTT协议,将采集数据上报并保存至数据库。采用的硬件有:esp8266开发板DHT11温度传感器面包板一个首先你需要在任意一个云服务器上搭建好一个mysql数据库,或者你在本地电脑上搭建也可以。接着你需要把硬件的接线连接好。[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/2pfZI10420184210192.(https://i

2021-04-20 18:49:12 1504 3

原创 mind+与掌控板的四个小实验

在这里我总结了四个小实验,运用到mind+和掌控板。那么就让我们开始吧!首先第一个实验:声控灯

2020-09-22 22:11:16 1169

原创 如何向小程序中导入npm

话不多说,我们直接开始吧~首先找到你要导入npm的那个项目文件夹,以我这个“实战”项目为例进入文件夹之后,可以直接右击加“shift"键,打开命令行敲重点啦!首先初始化一下敲入代码npm init会在最下行有“package name:”直接就在后面输入你要安装的包名就好,我是前面实验安装 weui-miniprogram输入包名之后,会弹出后面一系列balabala 你就一直回车,直到出现“Is this OK?(yes)"再回车输入npm install --save-dev

2020-05-24 19:47:16 520

原创 树莓派上传CPU温度到onenet平台 HTTP

因为想着要见识下不同的云平台,所以这次选择了onenet。整个操作过程也不复杂,不需要用到什么额外的硬件,只需要一块树莓派即可。首先,你需要在onenet平台注册,成为一名开发者。接着在平台上面创建产品,添加设备。这一系列操作,可参考官网文档。创建产品:https://open.iot.10086.cn/doc/book/easy-manual/product&device/product-create.html创建设备:https://open.iot.10086.cn/doc/book/e

2020-05-24 10:58:15 708 2

原创 小程序关于普通二维码的坑

前段时间,因为需求原因,需要在小程序中引导用户去到下载APP页面。打算采用二维码形式。但是小程序内部,只能扫描小程序码,对于普通二维码是不予支持的。后面查到腾讯有个微下载服务,就可以无阻碍,顺利完成目标。但介于下载APP并非我们所开发。因而微下载有点困难。(感兴趣的,可以自行去腾讯开放平台了解)所以打算用小程序的web-view组件。二维码是可以嵌入其中,本以为万事大吉,但后面为了确定可行性,就预先去微信社区查看是否有成功案例,但很不幸。并不可以。https://developers.weixin.qq

2020-05-16 08:29:11 764

原创 如何查看电脑wifi密码

这里写自定义目录标题如何用cmd查看WiFi密码如何用cmd查看WiFi密码通常情况下,当我们在设备中添加某个wifi密码之后,后续我们要连接的时候就不需要再输入密码,但久而久之也许我们就会忘记WIFI密码。那么我们该如何找寻回来呢?利用两行命令即可。首先输入图片中划横线部分命令,在弹出的用户配置文件中是你这台设备之前所连接过的wifi,你可以在其中找到你想找回密码的那个wifi选定你想找寻的wifi之后,再输入上图的命令。(双引号内部为你所选定的wifi名称)打码部分就是所选定w

2020-05-15 08:30:20 760

转载 vs code 与node js

vs code 与node js昨天开始上手接触node js,准备配合vs code 来使用。按照网上教程,在文件夹终端使用node 命令,一点反应都没有(代码并没有错误)。后上网搜索相关资料,也一无所获。后来终于找到了解决办法,只要在cmd中 安装安装npm http-server服务,npm install http-server -g-g代表安装到全局global才得以解决问题详...

2020-04-03 11:09:19 431

空空如也

空空如也

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

TA关注的人

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