- 博客(76)
- 资源 (5)
- 收藏
- 关注
原创 图像处理 - BMP图像行字节数
BMP是一种与硬件设备无关的图像文件格式,采用位映射存储格式。BMP文件的图像深度可选1bit、4bit、8bit及24bit。位图数据记录了位图的每一个像素值或该对应像素的颜色表的索引值,BMP文件存储位图数据时,图像的扫描方式是在行内按从左到右扫描、在行间从下到上扫描的顺序。Windows规定图像文件中,一个图像的扫描行所占的字节数必须是4的倍数(即以字为单位),不足的以0填充! ...
2018-05-24 14:27:43
5419
原创 Linux - Linux下indent命令详解
indent命令用途: indent工具可以把C语言代码格式化成某种风格语法: indent [参数] [源文件] indent [参数] [源文件] [-o 目标文件]描述: indent 命令按照随命令输入的标志所指定的格式重新格式化一个 C 程序。例如:indent -kr -i8 main.c
2017-11-14 12:31:18
4917
1
原创 DuerOS - DuerOS对话式人工智能系统唤醒
DuerOS开发板是基于树莓派(Raspberry Pi 3B 型)来进行使用的。进行开发前需要准备相关的软件和硬件来进行开发。硬件:DuerOS开发板、树莓派3B、8GTF卡(含读卡器)、USB 转Micro USB 数据线 * 2、USB 充电器、音响/耳机软件:DuerOS开发套件个人版镜像软件 (DuerOS开放平台的资源中心下智能硬件开发套件下的产品简介处下载http:/
2017-10-31 15:21:54
8826
原创 DuerOS - DuerOS开发套件免费申请流程及拆箱
两天前收到了DuerOS个人版,很是开心,从申请到发货也是等了2个月左右才拿到手,申请后一直盼着拿到这个对话式人工智能的板子,到货后马上进行了装机使用,感觉功能很强大,在这里记录下DuerOS开发过程和个人体验。 在申请DuerOS开发套件个人版之前需要先用百度账号登陆:http://developer.dueros.baidu.com/openduer/main/index,登陆之
2017-10-31 14:50:33
7803
1
原创 树莓派(Raspberry Pi 3) - 利用Instapush服务推送Led开关信息到手机
Instapush 是一个免费推送消息的app,树莓派只需安装相关的驱动即可发送通知给 IOS 或者 Android 设备。这里主要是利用开关控制 Led 的打开/关闭来触发推送信息的事件。当开关打开,Led 灯点亮时,树莓派就发送消息到移动设备。配置Instapush服务1、进入 Instapush 官网完成注册登录(https://instapush.im/)2、手机上下载 Ins
2017-07-12 14:57:28
3594
原创 树莓派(Raspberry Pi 3) - 树莓派打造无线路由器
使用树莓派来做无线路由器,首先需要确认的是USB无线网卡已经安装了正确的驱动并能工作,其次所使用的无线网卡需要支持AP功能,否则即使正确配置了无线路由器,有软件也无法正常工作。配置无线路由器需要安装 hostapd 与 isc-dhcp-server ,其中 hostapd 是一个用于访问点以及认证服务器的服务程序。一、配置无线网卡固定 IP 以及子网地址编辑网络配置文件: vi
2017-06-30 14:25:15
24559
1
转载 嵌入式 - Ubuntu vi 编辑器上下左右变ABCD问题解决方法
Ubuntu vi 上下左右变ABCD问题解决方法错误问题:vi上下左右键显示为ABCD的问题解决方法: 只要依次执行以下两个命令即可完美解决Ubuntu下vi编辑器方向键变字母的问题。 一、执行命令 sudo apt-get remove vim-common 二、执行命令 sudo apt-get install vim
2017-06-30 13:45:33
950
原创 树莓派(Raspberry Pi 3) - 通过SSH访问树莓派
SSH的主要目的是用来取代传统的telnet和R系列命令远程登陆和远程执行命令的工具,实现对远程登陆和远程执行命令加密。同样通过SSH功能也能快速的打开树莓派得终端。开启SSH服务树莓派系统一般都含有树莓派服务,因此不需要进行安装。在树莓派系统中打开命令行窗口,输入:sudo raspi-config 进入配置界面,将选中条选择到“9 Advanced Options”(上下键移动
2017-06-29 17:16:27
38188
1
原创 树莓派(Raspberry Pi 3) - 通过VNC访问树莓派
通过VNC访问树莓派VNC 是一款优秀的远程控制软件,在树莓派、手机、电脑、平板上安装VNC,就可以通过手机,电脑或者平板来远程控制树莓派了。
2017-06-29 15:28:26
30647
3
原创 Matlab - Matlab中M文件的创建和调用
M文件简介 对于常用的的程序或者尺寸较大矩阵,如果每次都直接在命令窗口从头输入就显得不方便,容易出现错误且不便修改。为了解决这个问题,可以先将这些程序或者矩阵写入一个M文件,然后再Matlab的命令窗口或程序中直接执行自定义的命令,就可以方便的调用,编程的效率大大提高!M文件创建 例一:利用M文件建立名为matrix的矩阵。 启动
2017-06-22 11:15:34
35096
转载 单片机 - SPI通信
SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。具有通信简单、数据传输速率快以及穿双工通信等优点。但由于没有指定的流控制以及没有应答机制确认是否收到数据而在数据可靠性上存在一定缺陷。 SPI由于接口相对简单,用途算是比较广
2017-06-20 12:00:06
3536
转载 嵌入式 - Linux下kill常用信号解释
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下
2017-06-19 11:46:01
1434
原创 树莓派(Raspberry Pi 3) - Raspbian中文输入法安装及中文环境配置
Raspbian发行版中默认安装了许多软件,但是这些软件中并没有包含输入法。不过在Raspbian发行版中,包含了一个功能强大的软件包管理器——apt,在apt下就已经包含了拼音输入法,因此只要直接在命令行安装就行。安装中文输入法在安装软件包之前,可以通过运行更新,确保apt缓存是最新的:sudo apt-get update更新完成之后,运行:sudo apt-get insta
2016-12-08 15:49:17
65464
4
原创 树莓派(Raspberry Pi 3) - 系统烧录及系统使用
树莓派(Raspberry pi)是一块集成度极高的ARM开发板,不仅包含了HDMI,RCA,CSI,HDMI,GPIO等端口,还支持蓝牙以及无线通信。由于Raspberry Pi几乎是为Linux而生的一款卡片式微型电脑,所以Raspberry Pi的操作系统也是多样的,不仅支持Raspbian,Ubuntu Mate,Snappy Ubuntu核心等多种Linux操作系统,还...
2016-11-30 13:45:25
67537
3
原创 单片机MSP430 - Timer_A 定时器中断程序
一、利用定时器定时功能,实现定时器单个溢出中断,实现 P3.0 方波输出#include "cc430x613x.h"void main(){ WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P3DIR |= 0x04; // P3口初始化,设置为输出模式
2016-11-21 11:13:56
19191
2
原创 单片机MSP430 - MSP430+CC1101常用自带函数
一、中断操作__get_interrupt_state() 功能:返回当前的中断状态。通过使用此函数可以获得当前的中断状态并保存。__disable_interrupt() 功能:关闭所有中断__set_interrupt_state(x) 功能:恢复中断状态,可恢复 _get_interrupt_state()
2016-10-18 11:00:41
2139
原创 单片机MSP430 - 定时器Timer_A
一、定时器Timer_A 介绍Timer_A是一个具有多路捕获/比较寄存器的16位定时/计数器,主要有TAxCTL,TAxR,TAxCCTLn,TAxIV,TAxEX0 几个寄存器。其中最主要的是TAxCTL寄存器,它决定Timer_A的输入时钟信号,Timer_A的工作模式,Timer_A的开启与停止,中断的申请等。中断可以来自定时器溢出或者任意的捕获/比较寄存器Timer_A的特征包括:
2016-10-17 12:15:02
10048
原创 嵌入式 - VMware虚拟机常见问题处理(VMware Workstation cannot connect to the virtual machine.无法打开内核设备“\\.\Global\)
通过VMware虚拟机开启系统时,弹出对话框,提示:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories
2016-09-21 10:05:30
4877
原创 单片机C51 - 串行通信原理及串口编程实验
一、两种通信方式概念1.并行通信传输原理:并行通信时数据的各个位同时传送,以字节为单位并行传输优点:并行通信速度快,传输的数据宽度可以是1~128位,甚至更宽缺点:并口上导线之间数据同步难处理,占用引脚资源多2.串行通信传输原理:串行通信的数据是一位一位地址进行传输的,在传输中每一位数据都占据一个固定的时间长度。优点:串行通信传输线少,占用引脚资源少,成本低,适合远
2016-09-07 10:42:00
11935
原创 嵌入式 - 虚拟机、开发板与主机Ping不通问题解决方法
1、IP地址设置 设置主机、虚拟机以及开发板静态IP(不能使用自动获取IP),确保3个静态IP地址处于同一网段(192.168.1.*),如: 主机:192.168.1.10子网掩码:255.255.255.0默认网关:192.168.1.1 首选DNS:202.96.128.86 虚拟机:192.168.1.100 开发板:
2016-08-31 17:11:53
8612
2
原创 单片机C51 - 16 x 16点阵使用指针显示汉字
近年来,点阵LED显示屏利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,已成为众多显示媒体以及户外作业显示的电子工具,广泛地应用于车站、宾馆、金融、证券、邮电、体育等广告发布或交通运输等行业。本文中所介绍的16x16LED显示屏是采用4块最基本的8X8 LED点阵显示模块,理解8X8 LED点阵的工作原理就可
2016-08-31 11:34:10
20011
2
原创 单片机C51 - 蜂鸣器(变频闪灯报警)
蜂鸣器有有源和无源的几种。也称为直流蜂鸣器和交流蜂鸣器。有源蜂鸣器只要通上直流电,就会发出预定的声音,比如,连续嘀声,或者间断嘀嘀声,这种声音无法控制,频率也无法改变。一般用在一些简单应用场合。无源蜂鸣器相当于一个简单的喇叭,通上直流点不会发声,只有通上交流电时,才会根据交流点的频率发出相应的声音,这种蜂鸣器可以任意控制声音输出,但是需要用户以相应的信号驱动,工作复杂一些。在实验中使用的是交流蜂鸣
2016-08-30 15:48:56
22423
5
原创 单片机C51 - 4按键4级变速跑马灯
通过检测4个按键是否按下来控制跑马灯的速度,从而使跑马灯达到4个按键4级变速的效果。但按键按下时可能会有抖动的情况,每次按下时,可能会发生了人难以觉察到的多次抖动,相当于一下子按下了很多次。这会导致程序无法识别出您真正的按键意图。但是抖动一般都是发生在刚按下键和松开键的时候,所以,我们只要避开这一段时间,等键稳定按下或者松开时,再去读它的值,一般就可以正确读取了。所以,当读到第一次按键的值时,要延
2016-08-26 11:44:55
1913
1
原创 单片机C51 - 自动变速跑马灯
单片机的跑马灯实验就如同 C 语言的"Hello World!"程序一样,几乎所有单片机试验课程都会介绍到跑马灯试验,简单的跑马灯只需选择P0 - P3口其中一个和8个LED灯连接即可。自动变速跑马灯通过定时器中断的控制能准确控制跑马灯频率。 对于定时器的中断的工作方式,我们可以建立两个全局的标记,一个在中断里置这个标记,然后就退出。在主程序里检查到这个标记之后,就运行相关的程序。另一个用来
2016-08-26 10:45:17
3512
原创 OpenCV - 三种线性滤波的使用
一、方框滤波方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数的作用是使用方框滤波器(box filter)来模糊一张图片。函数原型为:void boxFilter(InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor = Point(-1,-1), bool
2015-11-16 12:50:09
1522
原创 OpenCV - 基本图形函数的使用
在OpenCV的图像绘制中,我们会用到各种绘制函数,基本的函数包括绘制直线的line函数,绘制椭圆的ellipse函数,绘制矩形的rectangle函数,绘制圆的circle函数以及用于绘制填充的多边形的fillPoly函数。下面可以通过下面用函数绘制的两个组个图的一段代码来详细了解DrawEllipse() 函数、DrawFilledCircle() 函数、DrawPolygon() 函数以
2015-10-24 20:49:14
1294
原创 OpenCV - 鼠标操作(鼠标回调函数)
OpenCV中的鼠标操作和前面所了解的鼠标操作有不少相同之处,两者都是通过一个中介函数配合一个回调函数来实现的。指定鼠标操作消息回调函数的函数为SetMouseCallback函数。void setMouseCallback(WinDow, MouseHandle, (void*)&srcimage)函数,第一个参数为窗口的名字,第二个参数用来指定窗口每次鼠标时候发生的时候,被调用函数指针,第三个
2015-10-22 11:29:13
6122
原创 OpenCV - 滚动条的创建和使用
滚动条(Trackbar)是OpenCV动态调节参数特别好用的一种工具,它依附于窗口而存在。createTrackbar()函数用来创建一个可调整数值的附加在窗口上的滚动条!创建滚动条的createTrackbar()在实例中的应用如下:#include #include #include #include #include #include
2015-10-15 11:08:25
3861
原创 OpenCV - 简单图像融合
在OpenCV中,将两个图片矩阵进行融合变成一个图片用到的是cvAddWeighted函数。在cvAddWeighted函数中,有两个源图象image1 和 image2。两个图象可以是任何象素类型,只要它们的类型相同。它们可以是单通道或是三通道,只要它们相符。但它们的ROI必须有相同的大小,否则会编译出错!#include#includeusing namespace cv;int
2015-10-13 20:17:01
2617
原创 OpenCV - imwrite函数的使用
imwrite 函数用于将图像保存到指定的文件。imwrite支持的图像格式有:bmp(1-bit、8-bit和24-bit)、gif(8-bit)、hdf、jpg(或jpeg)(8-bit、12-bit和16-bit)、jp2或jpx、pbm、pcx(8-bit)、pgm、png、pnm、ppm、ras、tif(或tiff)、xwd等,图像格式是基于文件扩展名的,课保存的扩展名和imread中可
2015-10-13 19:36:34
41369
原创 OpenCV - 视频及图像采集
OpenCV中对视频进行读取显示以及调用摄像头都会用到VideoCpature类!VideoCapture类读入视频的方法一般分为先实例化再初始化和在实例化的同时进行初始化两种!这两种写法的和C语言中int类型的定义一样,两种写法如下:int 类型:int a = 1;VideoCapture 类型:VideoCapture capture("C:\\Desktop
2015-10-13 11:50:17
2125
原创 OpenCV - 图像处理基础
OpenCV中的C++类和函数都是定义在命名空间cv之内的,因此可以在头文件中加上usingnamespace cv;这一句,方便编写操作。#include #include #include #include #include using namespace cv;int main(){ Mat image = imread("C:\\Users\\Lyh\\Deskto
2015-10-13 10:37:44
824
原创 数学模板 - 计算方法
二分查找法/* 在数组b中查找是否有数组a中的元素 */#include #include int comp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ int n, m; int i, j, x, y, s, mid; int a[100010], b[100010];
2015-08-26 20:26:54
489
原创 数学模板 - 组合数学
排列组合生成1~n的排列:void solve(int n, int *a, int num)///solve(n,mem,0),输入n,按字典序从小到大的顺序输出前n个数的所有排列{ if(num == n)///递归边界 { for(int i = 0; i < n - 1; i++) printf("%d ",a[i]);
2015-08-26 16:14:41
689
原创 NBUT 1224 - Happiness Hotel【佩尔方程】
Happiness HotelTime Limit:1000MS Memory Limit:131072KBDescription:The life of Little A is good, and, he managed to get enough money to run a hotel. The best for him is that he need not g
2015-08-24 17:23:25
784
原创 数论模板 - 佩尔方程
佩尔方程输入一个数k,求方程ans^2 = k*n*n+1 中ans的最小整数解(n是大于等于一的整数,无上限)#include #include #include #include #include using namespace std;int can[1005] = {0};int a[10005][605]= {0};int x[6005], y[60
2015-08-24 17:06:42
734
原创 数学模板 - 数论基础
欧几里得(辗转相除)算法:int gcd(int a, int b) ///最大公约数{ return b == 0 ? a : gcd(b, a % b);}int lcm(int a, int b) ///最小公倍数{ if (a * b == 0) return 0; return a / gcd(a, b) * b;}扩展欧几里得算法:
2015-08-23 09:43:56
464
原创 模板 - 最长公共子序列
最长公共子序列#include #include #include #include using namespace std;string str;///公共子序列char s1[1000], s2[1000];int dp[1000][1000], mark[1000][1000];///数据太大,dp数组变成滚动数组int LCS(){ int i, j,
2015-08-21 15:36:17
385
原创 二维几何模板 - 圆和球有关计算模板
圆和球有关计算模板#include #include #include #include #include #include #include #include #include using namespace std;const double PI = acos(-1.0);struct Point{ double x, y; Point
2015-08-20 15:58:54
459
原创 二维几何模板 - 二维几何基础
二维几何模板struct Point{ double x, y; Point(double x = 0, double y = 0) : x(x), y(y){ }};typedef Point Vector;Vector operator + (Vector A, Vector B) {return Vector(A.x + B.x, A.y +
2015-08-19 16:46:56
489
Keil uVisoin各版本破解软件
2018-03-08
MSP430 + nRF24L01+ 无线收发代码
2017-12-27
MSP430 + CC2500无线收发代码
2017-10-10
SSH+MySQL+JSP学生选课管理系统
2016-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人