![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础
文章平均质量分 80
mcgrady_tracy
这个作者很懒,什么都没留下…
展开
-
SPI协议
参考:https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bushttps://en.wikipedia.org/wiki/Serial_Peripheral_Interface_BusSPI(Serial Peripheral Interface)是一种用于短距离的同步串行通信协议,由Motorola开发。SPI通常原创 2016-07-18 11:58:39 · 2239 阅读 · 1 评论 -
gtk布局
1. GtkFixedGtkFixed是固定控件位置和大小的容器,代码示例如下:#include int main(int argc, char *argv[]){ GtkWidget *window; GtkWidget *fixed; GtkWidget *btn1; GtkWidget *btn2; GtkWidget *btn3; gtk_init(&argc,原创 2015-10-16 17:16:39 · 784 阅读 · 0 评论 -
vim 学习
1. 基本的编辑命令学会使用一个编辑器呢,我们先不管它的一些高级特性,先只看最基本的,至少保证我们能够正常使用这个编辑器吧。首先来认识vim编辑器,vim编辑器是一个模式编辑器,也就是说它可以工作在多个模式下,常见的有Normal和Insert模式,当我们打开vim编辑器之后,它最初是在Normal模式下的。再来看我们怎么输入文本呢?在Normal模式下输入字符'i',vim由原创 2015-05-03 12:34:30 · 692 阅读 · 0 评论 -
linux远程访问工具介绍
远程访问就是通过网络远端访问你的计算机1.SecureCRT这也是我最早使用的一款软件,那个时候刚使用linux,是在winddows虚拟机中装的linux,当时用的虚拟机是VMware Workstation,linux是Fedora9。因为有些文件需要从windows下传输到虚拟机的linux中,到网上就搜到了这款软件,因为它有ftp功能,并且有个窗口,一端可选择windows下目原创 2012-03-07 13:51:03 · 12492 阅读 · 0 评论 -
vim + ctags + cscope + taglist
1. ctags 和 cscopectags下载地址:http://ctags.sourceforge.net下载完成之后,解压,然后执行configure脚本生成Makefile文件,然后make,然后执行sudo make install来安装ctags。cscope官网地址:http://cscope.sourceforge.net,可以在官网找到下载链接。然后解压,同c原创 2015-05-08 18:30:43 · 1056 阅读 · 0 评论 -
ssh简单操作命令
1. 登录到远端计算机在客户端登录到远端计算机使用ssh命令,常用的格式为:ssh user_name@远端计算机IP很多时候会忘记加上user_name,那么默认的就是使用本地账户登录到远端计算机。如果你运气足够好的话,远端和本地具有相同的账户,并且你知道远端该用户的密码,那么你能够登录成功,否则,还是老老实实的加上远端计算机的用户名吧。输入该命令后,会提示你数据一个密码,该密码就是原创 2012-12-19 17:03:43 · 4258 阅读 · 0 评论 -
graphviz教程
graphviz是一个开源的图形可视化软件,与其他图形软件所不同,它的理念是“所想即所得”,通过dot语言来描述并绘制图形。首先是安装,在ubuntu下,可以直接使用命令sudo apt-get install graphviz命令来安装,当然也可以从源码来安装,源码可以从这里下载:http://www.graphviz.org/pub/graphviz/stable/SOURCES/原创 2015-07-29 19:30:10 · 15464 阅读 · 0 评论 -
Linux常用命令
date 显示日期cal 显示日历who 查看谁在线ps -aux 进程查看sync 数据同步写入磁盘shutdown 关机reboot 重启ls 列举文件chgrp 修改文件所属组,可以使用-R选项进行递归修改chown 修改文件所有者chmod 修改文件权限cd 变换目录pwd 显示当前所在目录mkdir 新建目录rmdir 删除目录...原创 2012-07-29 19:24:36 · 1266 阅读 · 4 评论 -
ia32问题
在64位ubuntu版本上使用mini2440的交叉编译器会出现下面的错误信息:/opt/FriendlyARM/toolschain/4.4.3/libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: error while loading shared libraries: libstdc++.so.6: cannot open shared objec原创 2015-06-04 23:25:17 · 715 阅读 · 1 评论 -
git权限问题
那么在git服务器上通常会建立一个git这样一个账户,其它人共用这个账户来克隆或推送数据到git仓库中,通常也只需要这个功能,但是如果不加限制,那么其它人可以通过这个git账户登录到主机,那么这样是不安全的,所以需要加以限制,方法如下:编辑/etc/passwd这个文件,在文件末尾可以找到类似这样的行:git:x:1000:1000::/home/git:/bin/sh然后把/bin/原创 2014-10-31 17:48:13 · 64458 阅读 · 3 评论 -
libxml2 的一个简单示例
该示例来自:http://www.xmlsoft.org/xml文件如下: John Fleck June 2, 2002 example keyword This is the headline This is the body text. 解析代码代码如下:#include #include #include #include #inc原创 2015-06-06 11:42:01 · 1842 阅读 · 0 评论 -
libxml2 使用教程
/* 查询节点集 */ xmlXPathObjectPtr getnodeset(xmlDocPtr doc, xmlChar *xpath){ xmlXPathContextPtr context; xmlXPathObjectPtr result; /* 存储查询结果 */ /* 创建一个xpath上下文 */ contex转载 2015-06-06 11:33:41 · 7618 阅读 · 0 评论 -
XML技术概览
本文整理自w3school上的内容http://www.w3school.com.cn/x.asp。 1、XML简介 当 XML(扩展标记语言)于1998年2月被引入软件工业界时,它给整个行业带来了一场风暴。有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方。XML被设计用来传输和存储数据。这与HTML转载 2015-06-06 11:31:06 · 904 阅读 · 0 评论 -
minicom保存uart log
使用minicom也有很长时间了,只用minicom抓过uart log,但是从来没有去保存过这个log,也不知道有这个功能。后来在超级终端中发现有这个功能(传送->捕获文字),想想minicom应该也有这个功能才对,后来搜索找到怎么用了,方法如下:首先打开minicom,然后按一下ctrl + a,再按z键,会出现下面这个界面:看到Capture on/off这项了吗,按下L键,会出现下原创 2015-06-03 19:36:06 · 26837 阅读 · 2 评论 -
如何引导windows xp和ubuntu 12.04
之前一直使用的ubuntu + 虚拟windows xp的方式,虽然这也没有什么问题,可是有的应用毕竟不能在虚拟windows xp上使用,而且也发现越到后来虚拟的windows使用越慢,所以还是想办法装windows xp + ubuntu双系统的方式。先装上windows,然后再使用U盘方式装上ubuntu 12.04(必须以这个顺序),但是有个问题,以什么方式来引导windows xp和ub原创 2015-05-14 23:11:51 · 1800 阅读 · 0 评论 -
ubuntu中使用apt-get install时如何指定安装版本
命令用法如下:sudo apt-get install package=version例如我要安装autoconf 2.50:sudo apt-get install autoconf=2.50原创 2015-01-17 16:05:24 · 78882 阅读 · 1 评论 -
git 打标签
1. 列出已有标签,使用git tag命令,例如:$ git tagv0.1v1.3如果标签太多,也可以只列举出一部分标签,例如对1.4.2系列版本感兴趣:$ git tag -l 'v1.4.2.*'v1.4.2.1v1.4.2.2v1.4.2.3v1.4.2.42. 打标签1)带注释的标签,使用git tag -a (annotate原创 2014-11-27 20:24:02 · 1292 阅读 · 0 评论 -
git服务器架设
在软件开发中,通常我们需要同他人进行合作开发,那么就需要一个公共的git仓库,开发者都可以往该仓库提交和拉取代码,我们把这样的仓库称之为“git服务器”。这个远程仓库通常是一个“空仓库”(bare repository),可以使用命令git init --bare来初始化一个空仓库,所谓空仓库就是只有.git目录里面的内容,而没有提交的文件副本(有点不好理解)。原创 2014-08-26 23:07:01 · 749 阅读 · 0 评论 -
gtk dialog
1. message dialogmessage dialog有四种类型,分别是info、warning、question、error,代码示例如下:#include void show_info(GtkWidget *widget, gpointer window){ GtkWidget *dialog; dialog = gtk_message_dialog_new(GTK_WI原创 2015-10-20 15:04:59 · 1396 阅读 · 0 评论 -
gtk events
1. 按钮点击事件代码如下:#include void button_clicked(GtkWidget *widget, gpointer data){ g_print("clicked\n");}int main(int argc, char *argv[]){ GtkWidget *window; GtkWidget *halign; GtkWidget *btn;原创 2015-10-21 10:59:50 · 797 阅读 · 0 评论 -
wav音频文件格式解析
wav是微软开发的一种音频文件格式,注意,wav文件格式是无损音频文件格式,想对于其他音频格式文件数据是没有经过压缩的,通常文件也相对比较大些。文件格式如图所示:解析代码如下:#include #include #include struct WAV_Format { uint32_t ChunkID; /* "RIFF" */ uint32_t ChunkSize原创 2016-09-11 09:07:56 · 20662 阅读 · 3 评论 -
ALSA lib调用实例
1. Display Some PCM Types and Formats#include int main() { int val; printf("ALSA library version: %s\n", SND_LIB_VERSION_STR); printf("\nPCM stream types:\n"); for (val = 0; val原创 2016-09-22 10:31:55 · 3122 阅读 · 0 评论 -
ubuntu 12.04安装alsa-lib、alsa-utils
1. alsa-lib./configuresudo make install注意:默认是安装到/usr/这个目录下面,但是我测试多了多次,安装了alsa-lib之后,系统就没有声音了,也没有找到是什么原因。不得已,先安装到其他目录试试:./configure --prefix=$HOME/alsa-lib/make && make install2. alsa-u原创 2016-09-11 12:42:21 · 6595 阅读 · 1 评论 -
Linux diff命令
Linux中diff命令用于比较文件的差异,一般用于制作补丁文件。比较两个文件diff -u from-file to-file >file.patch-r 用于比较目录时表示递归比较子目录的内容-N 如果目录中有新增文件也加入比较原创 2011-12-16 11:45:40 · 841 阅读 · 0 评论 -
GPS nmealib
nmealib是基于nmea协议的一个开源库,不仅可以解析nmea语句,还可以产生nmea语句,测试代码如下:#include #include int main(void){ const char *buff[] = { "$GPGSV,2,2,07,29,28,104,36,31,56,324,12,32,38,293,15*4E\r\n", "$GPGLL,3110.856原创 2016-01-14 17:45:34 · 2427 阅读 · 0 评论 -
mqtt协议
mqtt即Message Queue Telemetry Transport,是基于服务器端、客户端的一个消息传输协议,那么自然分为服务器端和客户端,github主页:https://github.com/mqtt/mqtt.github.io/wiki/software?id=software,这里有很多服务器端、客户端的实现。1. 服务器端mosquittomosquitto源代码原创 2015-12-04 17:00:37 · 1983 阅读 · 0 评论 -
关于磁盘分区
首先来看几个概念,主分区、扩展分区、逻辑分区。主分区:主分区通常是硬盘的启动分区,通常是硬盘的第一个分区,例如我们常说的"C"盘就是硬盘的主分区。扩展分区:除去主分区外,剩下的分区都被称为扩展分区。逻辑分区:扩展分区是相对于主分区而言的,只是一个概念,并不能直接拿来使用,必须再划分成为逻辑分区,通常的"D"、"E"、"F"盘都是硬盘的逻辑分区,而他们又属于扩展分区。例如,在原创 2015-12-03 10:24:00 · 541 阅读 · 0 评论 -
nmealib代码分析
从之前的samples/parse/main.c开始。以其中的一条GPGGA语句为例。nmeaINFO结构汇总的是gps数据信息,里面包括utc时间、定位状态、质量因子、经纬度、速度、方向等信息,之所以说是汇总,那是因为这里是对所有的nmea语句进行解析,然后将相应的数据赋值到该结构中,而不仅仅是其中的一条nmea语句,因为一条nmea语句不可能包括所有的gps信息。nme原创 2016-01-18 10:01:41 · 3477 阅读 · 0 评论 -
mqtt协议理解(结合libemqtt,subscribe部分)
1. connect在libemqtt代码中,客户端的connect代码是调用的mqtt_connect函数,代码如下:int mqtt_connect(mqtt_broker_handle_t* broker){ uint8_t flags = 0x00; uint16_t clientidlen = strlen(broker->clientid); uint16_t usern原创 2015-12-29 17:54:59 · 9471 阅读 · 2 评论 -
git 查看某个文件的修改历史
git查看某个文件的修改历史原创 2014-11-13 15:57:39 · 7266 阅读 · 1 评论 -
Introduction to AT commands and its uses
IntroductionAT commands are instructions used to control a modem. AT is the abbreviation of ATtention. Every command line starts with "AT" or "at". That's why modem commands are called AT commands转载 2015-11-27 11:40:18 · 675 阅读 · 0 评论 -
什么是2G、3G、4G
什么是GSM?根据通信百科的解释如下:GSM全名为:Global System for Mobile Communications,中文为全球移动通信系统,俗称"全球通",是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。我国于20世纪90年代初引进采用此项技术标准,此前一直是采用蜂窝模拟移动技原创 2015-11-27 10:50:14 · 1127 阅读 · 0 评论 -
JSON
1. JSON简介JSON是JavaScript Object Notation的缩写,是JavaScript语法的一个子集,类似于XML,用来存储文本信息的一种语法,例如:{ "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }原创 2015-12-28 10:18:36 · 550 阅读 · 0 评论 -
二、git的基本使用
git安装之后,就可以使用git来管理你的项目了。1. git仓库初始化初始化一个git项目呢,使用git init命令,初始化之后,在当前目录下会出现一个名为.git的目录,所有git需要的数据和资源都存放在这个目录中。当然,也可以从其它地方克隆一份git仓库,例如:$git clone git://github.com/artprogramming/usb.gi原创 2013-10-24 18:50:03 · 756 阅读 · 0 评论 -
mqtt协议理解
mqtt协议包格式控制包最多由3部分组成:固定头部、可变头部和payload。1. 固定头部固定头部只有两个字节,格式如下:byte1的高4位就是包的类型,包的类型定义如下:低4位为flag位,有的包需要,有的包不需要:byte2为剩余数据的长度,数据是包含可变头部和payload的。这个长度如果是单个字节的话,最多只能是127,如果数值大于12原创 2015-12-10 17:12:14 · 2485 阅读 · 0 评论 -
gtk第一个程序
1. 首先是gtk开发环境的安装由于通过源码方式安装gtk开发环境过于复杂,这里就不去介绍了,直接使用命令sudo apt-get install build-essential gnome-devel来安装gtk的开发环境。2. 程序示例代码如下:#include原创 2015-10-08 16:32:09 · 565 阅读 · 0 评论 -
gtk学习
紧接着上一篇文章来继续学习gtk。1. 窗口居中显示#include int main(int argc, char *argv[]){ GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WIND原创 2015-10-13 10:31:06 · 622 阅读 · 0 评论 -
关于git远程仓库
远程仓库是指托管在网络上的仓库,用于共享开发。原创 2014-08-27 00:51:43 · 769 阅读 · 0 评论 -
Makefile VPATH和vpath
通常程序并不只存放在同一个目录下,例如:├── include│ ├── bar.h│ └── foo.h├── Makefile└── src ├── bar.c ├── foo.c └── main.c代码分别如下:原创 2014-05-27 22:44:07 · 11083 阅读 · 1 评论 -
grep用法详解:grep与正则表达式
原文转载自:http://hi.baidu.com/nearlove/item/21968106e54b91d872e67648首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大转载 2014-02-14 15:42:10 · 1027 阅读 · 0 评论