自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(53)
  • 资源 (5)
  • 收藏
  • 关注

转载 C语言 fread()与fwrite()函数说明与示例

1.作用  读写文件数据块。2.函数原型  (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );     其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针     函数返回读取数据的个数。  (2)size_t fwri

2016-11-19 16:32:52 190

转载 UNIX网络编程书中源代码测试环境搭建

Steven在书中例子都包含一个#include "unip.h",从书中附录可以看出该头文件包含了网络程序中所使用到的各种相关头文件,所以如果想自己测试书中的源代码的话,我们需要需要搭建一个环境,以下是自己的实践过程,记录下来,以便以后参考:1、下载书中源代码unpv13e.tar.gz:这个可以在书中前言给出的地址下载:http://www.unpbook.com/unpv13e.ta

2016-11-01 17:00:10 213

转载 几个调试SocketCAN的命令

设置波特率:echo 125000 > /sys/class/net/can0/can_bittiming/bitrate启动can接口:ifconfig can0 up查看统计:cat /proc/net/can/stats查看can设备的中断统计:cat /proc/interrupts另附一段简单的测试代码:

2016-10-25 18:03:45 544

转载 linux之getopt 函数

命令行参数解析函数 —— getopt()getopt()函数声明如下:#include int getopt(int argc, char * const argv[], const char *optstring);extern char *optarg;extern int optind, opterr, optopt;该函数的ar

2016-10-20 16:39:07 110

转载 Linux Socket CAN

由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的知识点后,我们再去分析基于Linux的Socket CAN的驱动。这样的话理解起来更加容易、易懂。

2016-10-20 15:46:51 669

转载 未完待续

strcpyC语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间。原型声明:char *strcpy(char* dest, const char *src);头文件:#include string.h> 和 #include 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的

2016-10-20 15:42:55 97

转载 SIGINT SIGTERM SIGKILL区别

三者都是结束/终止进程运行。1.SIGINT SIGTERM区别前者与字符ctrl+c关联,后者没有任何控制字符关联。前者只能结束前台进程,后者则不是。2.SIGTERM SIGKILL的区别前者可以被阻塞、处理和忽略,但是后者不可以。KILL命令的默认不带参数发送的信号就是SIGTERM.让程序有好的退出。因为它可以被阻塞,所以有的进程不能被结束时,用

2016-10-19 15:40:29 992

转载 getopt, optarg, optind, opterr, optopt

#include        int getopt(int argc, char * const argv[],                  const char *optstring);       extern char *optarg;       extern int optind, opterr, optopt;       #include

2016-10-19 15:37:40 166

转载 自己设计通信协议

要解决的重点在于1 防止发送的消息丢失(1)接收方收到则应答(2)发送发发送后,过一段时间未收到应答,则重发;重发多次仍无应答,则退出2 防止应答丢失(1)应答丢失,则发送方会重发。接收方需判断收到的消息是否重复(帧中加入序列号)3 身份确认(1)用地址确认身份4 传递效率(1)限制每条消息的大小

2016-08-09 10:12:36 212

转载 C语言预处理指令之条件编译 (#ifndef #else #endif #if等)

预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏

2016-07-27 15:35:16 339

1. 交叉编译器 1.1 交叉编译器介绍 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台

1. 交叉编译器1.1 交叉编译器介绍在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(crosscompiler)。1.2 搭建交叉编译环境 1.2.1 实验环境交叉编译工具:arm-linux- 4.2.2编译平台:

2016-07-26 19:43:36 145

转载 ioctl()函数详解

我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl     ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用

2016-07-15 11:33:40 207

转载 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

一. 什么是ABI和EABI 1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口. ABI涵盖了各种细节,如: 数据类型的大小、布局和对齐; 调用约定(控制着函数的参数如何传送以及如何接受返

2016-07-14 10:58:59 388

转载 标准帧 扩展帧

大家先去看一个寄存器  CAN_TIxR(x=0~2) 发送邮箱标识寄存器 标准帧在 31~21 位  共11位 STID[10:0] 扩展帧在 20~3 位   共29位 EXID[17:0]+STID[10:0]0~2 位分别为 TXRQ ,RTR ,IDE  uint16_t CAN_ID = 0x0101 uint32_t ExCAN_ID= 0x1

2016-07-11 11:06:13 760

转载 Linux Socket CAN驱动-CAN总线原理

版权声明:本文为博主原创文章,未经博主允许不得转载。由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的知识点后,我们再去分析基于Linux的So

2016-07-01 19:39:18 718

转载 errno .h

查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。以下来自linux 2

2016-07-01 09:07:31 128

转载 CAN bus的移植 虚拟VCAN

版权声明:本文为博主原创文章,未经博主允许不得转载。CAN bus的移植一、首先要阅读相关的文档了解can bus协议;二、驱动移植,内核中一般是自带相关的can驱动,如果没有可以自行加入;三、测试,首先下载can bus套件:[plain] view plain copy print?fulinux

2016-06-24 09:35:20 621

转载 C++ typedef用法小结 (※不能不看※)

第一、四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽

2016-06-24 09:22:11 98

转载 VMware虚拟串口的设置和使用

版权声明:本文为博主原创文章,未经博主允许不得转载。本文内容部分翻译自VMware的帮助文档。环境:宿主机:Windows7   VMware7.1虚拟机:Fedora12 VMware的串口:一个虚拟机最多可以添加四个虚拟串口,有如下几个方法配置虚拟串口:连接一个虚拟串口到宿主机的物理串口。连接一个虚拟串

2016-06-23 19:13:50 838

转载 揭开Socket编程的面纱

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗?什么是TCP/IP、UDP?         TCP/IP(Trans

2016-06-23 15:04:40 107

转载 linux socket can程序cantool

版权声明:本文为博主原创文章,未经博主允许不得转载。最近写了个自认为不错的基于linux socket can程序,主要功能:程序具备全部CAN功能,包括CAN标准帧/扩展帧接收与发送、CAN总线错误判断、环回等功能适用基于LINUX SOCKET机制实现的CAN接口,可用于嵌入式LINUX的CAN测试程序采用标准LINUX命令行参数选项形式,接受用户参数现把源码进

2016-06-21 23:15:31 393

转载 win732位 + QT4.8.6 + QT CRETER 环境配置的搭建

一、软件准备与安装1.编译器MinGW的下载,官网地址http://download.qt-project.org/development_releases/prebuilt/mingw_32/,在这个列表中选择下载完之后解压到D:\MinGW.2.下载安装qt-opensource-windows-x86-mingw482-4.8.6-1,官网下载地址为:http://q

2016-06-20 11:16:01 95

转载 socketcan ISOTP 使用

交叉编译使用arm-linux-gcc 就要拷贝isotp.h到交叉编译其的include目录下,我们这里是/opt/armgcc/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include/linux/can/#include #include #include #include #include #includ

2016-06-15 16:31:12 658

转载 socketcan ISOTP 使用

交叉编译使用arm-linux-gcc 就要拷贝isotp.h到交叉编译其的include目录下,我们这里是/opt/armgcc/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include/linux/can/#include #include #include #include #include #include

2016-06-15 16:30:08 224

转载 SQLite3.8.4.2在Windows平台下的编译和使用

下载源代码可以在下面的链接中找到“Source Code”一栏:http://www.sqlite.org/download.html当前提供了两个下载源,我们选择第一个sqlite-amalgamation-3080402.zip这个是将代码整合过的,解压后应该有下面几个文件:shell.csqlite3.c

2016-06-15 15:52:09 131

转载 VS2013创建dll动态链接库文件心得

关于创建动态链接库文件,并在程序运行过程中连接调用,我是这么理解的;这篇文章基本是属于入门文档。。。首先要生成一个DLL文件和lib文件,才能够供给其他程序动态调用或者静态调用。这篇日志是关于动态调用的;接下来是总结的一些具体步骤:1.新建项目,win32,win32项目,输入项目名称,例如:MakeDll。2.确定,下一

2016-06-14 18:13:53 129

转载 VS2013 生成sqlite3动态连接库及sqlite3.dll的调用

一,生成sqlite3动态连接库1,去sqlite官网上下载最近的sqlite源码包,解压后得到四个文件:shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h此处还需要sqlite3.def文件,它在sqlite官方生成的dll包中,下载下来,解压即可。其中,shell.c文件是做来生成exe可执行文件用的。2,打开vs2008 新建sqlite3的非m

2016-06-14 18:12:01 92

转载 MYSQL常用语法

1.登录 mysql -uuser -ppassword [-hhostip]2.常用命令show databases;use databasename;show tables;desc tablename;命令不是大小写敏感的,数据库对象名字是大小写敏感的3.语法:创建数据库create database databasename;create datab

2016-06-14 15:20:06 93

转载 sqlite3数据库的使用方法

1. 安装SQLite3sudo apt-get install sqlite3   2. 安装Sqlite3编译需要的工具包如果,你需要的话可以安装该工具包。只是为了体验一把,可以不安装。该项是可选项。apt-get install libsqlite3-dev  3. 检查安装是否成功执行下面命令,会出现sqlite版本号,如3.6.22sqlite3 -v

2016-06-14 14:40:54 127

转载 sqlite3数据库的使用方法

1. 安装SQLite3sudo apt-get install sqlite3   2. 安装Sqlite3编译需要的工具包如果,你需要的话可以安装该工具包。只是为了体验一把,可以不安装。该项是可选项。apt-get install libsqlite3-dev  3. 检查安装是否成功执行下面命令,会出现sqlite版本号,如3.6.22sqlite3 -v

2016-06-14 14:40:04 55

转载 Windows下PATH等环境变量详解

在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量,是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这些概念没有理解,知其然但不知其所以然。下面的内容,就是帮助大家知其所以然。一、基本原理     首先看PATH环境

2016-06-07 14:19:59 826

转载 串口DCB结构详细说明

串口DCB结构详细说明 成员 说明 DCBlength DCB结构大小,即sizeof(DCB),在调用SetCommState来更新DCB前必须作设置 BaudRate 指定当前采用的波特率,应与所连接的通讯设备相匹配 fBinary 指定是否允许二进制模式。Win32 API不支持非二进制模式传输,应设置为true fParity 指定奇偶校验是否允许,在为true时具体采

2016-06-06 17:02:07 507

转载 CRC16 三种算法及c实现

标准CRC生成多项式如下表:  名称       生成多项式             简记式*  标准引用   CRC-4       x4+x+1                  3         ITU G.704   CRC-8       x8+x5+x4+1              0x31                      CRC-8       x8+x

2016-06-06 08:56:42 623

转载 RTS_CONTROL_TOGGLE串口通讯中的DCB结构

这段时间用到了研华的板子PCM3353,上面有个口是422/485复用的(用跳线帽不同位置区分),项目上需要使用485串口,RS485是半双工协议,有的工控主板厂家在做RS485口时,完整的实现了自动RTS,则我们编程人员不用关心底层硬件变化,就像平时使用RS232串口一样使用,这包括我们到电子市场买的232转422或485的“博世头”,都内部自动实现了自动RTS;有的厂家没有实现自动RTS,则需

2016-06-05 04:08:23 514

转载 串口流控制DCB结构体解析及设置

一、串口通信结构体意义解析:typedef struct _DCB{ DWORD DCBlength;DWORD BaudRate; //波特率DWORD fBinary :1; DWORD fParity :1; //是否奇偶校验DWORD fOutxCtsFlow :1; // CTS output flow control 指定

2016-06-05 04:07:29 710

转载 wince -- RS485半双工实现

RS485半双工软件编程实现 方法1:让操作系统正确的控制RTS信号。hCOM = CreateFile(...)...DCB dcb;memset( &dcb, 0, sizeof(dcb) );dcb.DCBlength = sizeof(DCB);dcb.fBinary = TRUE; // binary mode, no EOF checkdcb

2016-06-02 16:30:32 229

转载 CWinThread的使用方法

CWinThread类成员数据成员 m_bAutoDelete 指定线程结束时是否要销毁对象  m_hThread 当前线程的句柄  m_nThreadID 当前线程的ID  m_pMainWnd 保存指向应用程序的主窗口的指针  m_pActiveWnd 指向容器应用程序的主窗口,当一个OLE服务器被现场激活时  构造函数 CWinThread 构造一个CWinT

2016-06-01 09:47:27 148

转载 类对象和类指针的区别

类的对象和类的指针的区别zz如下程序: #include  #include  using namespace std; class Student {     public:     static int number;     string name; public:     Student() { } 

2016-06-01 09:40:26 116

转载 C++中this指针的用法详解

1. this指针的用处:  一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。   例如

2016-05-26 09:38:23 119

转载 CEdit

SetSel(start,end)作用:定制EDIT的所选择内容.间接地可以用于定位光标位置.使用例子:EXP1:设置光标CEdit*      pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);   pEdit->SetSel(2,2);   pEdit->SetFocus();  EXP2:选择内容CEdit*      pEd

2016-05-25 14:29:45 110

对单片机的modbus RTU的详细解释

对单片机的modbus RTU的详细解释

2016-05-26

典型串口类的串口通信工具详细代码注释讲解

忙活了三个小时,免费分享。

2016-05-25

Visual C++ 串口通信技术与工程实践 李现勇编著

2016-05-19

单片机控制电动机

单片机控制电动机正反转

2012-09-26

空空如也

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

TA关注的人

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