笔记
吱吱吱吱丶
这个作者很懒,什么都没留下…
展开
-
CRC循环冗余校验码的基本原理-笔记
基本原理:在K位信息码(我们要传递的值-二进制)后面加上R位的校验码,R位即为G(x)多项式的最高幂(校验码的位数比生成除数的位数少1)。整个码的长度为N位,根据N位和K位查表找到多项式G(x)。根据G(x)生成除数用来接收端判断数据是否正确(收到的整个编码如果能够整除除数的话那么就是完整并且正确的数据)。G(x)多项式从表中通过信息码的位数得到相应的G(x)多项式,得到之后,可以从多项式中算出除数原创 2016-11-30 19:18:22 · 1338 阅读 · 0 评论 -
关于串口出现使用虚拟串口调试正常但是物理串口调试出现数据重复错误
下面是程序使用虚拟串口进行调试的画面:原发数据为:01 03 02 00 01 79 84,数据都是正常的,接下来使用物理串口进行调试就会出现数据重叠或者重复的现象,物理串口指的是用物理串口线插到电脑端口进行通信,模拟日常生产或者使用的情景。但是以上情况在进行调试的时候单步走就不会出现重叠或者重复现象。以上原因类似于:程序在进行串口接收的时候一般是在线程中使用while循环进行读取,然后当whil...原创 2018-07-05 11:16:10 · 2676 阅读 · 0 评论 -
关于处理串口出现分段接收数据的情况
在进行串口接收的时候由于串口线和外界因素的影响会出现数据接收出现分段的情况,本来发送端发出的是一段完整的数据但是接收端却接收到的是两段甚至是三段数据。以上接收端会出现类似于两段接收的情况但是中间间隔极短,所以最简单的是在一接收到数据之后进行读秒倒计时譬如在1.5s内也进行数据接收和数据拼接,1.5秒后在对数据进行拼接判断是不是符合要求的数据。...原创 2018-07-03 21:48:17 · 9857 阅读 · 1 评论 -
关于串口读取指定字节的操作流程
采用CreateFile方式创建串口并且串口延时的系数设置为MAX,0,0; m_hSerial = CreateFile("COM3",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); m_hSerial2 = CreateFile("COM8",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN...原创 2018-02-20 18:25:16 · 2269 阅读 · 1 评论 -
第二个项目:多线程
创建线程:HANDLE hThread1,hThread2; hThread1 = CreateThread(NULL,0,func1pro,this,0,NULL); hThread2 = CreateThread(NULL,0,func2pro,this,0,NULL);使用this指针是因为我们要在线程处理函数中使用到相关的类成员。 static DWORD WINAPI f原创 2017-08-07 09:33:49 · 424 阅读 · 0 评论 -
读取bmp文件然后在重新保存为一新的bmp文件
FILE *fpo=fopen(strReadFilePath,"rb"); FILE *fpw=fopen(strSaveFilePath,"wb+"); int step,offset,i,j; unsigned char PixVal; if(fpo==NULL || fpw==NULL) { MessageBox("SaveFile:open failed"); retu原创 2017-07-26 16:14:19 · 795 阅读 · 0 评论 -
【#ifdef和#def】使用方法
#ifdef和#def两者是共同使用的,中间还可以使用#else作为选择。#include #define HELLOextern "C"{#include };#ifdef HELLOint a = 10;#elseint a = 100;#endifint main(){ printf("%d\n",a); return 1;}在上述程序中,如果没有原创 2017-08-17 15:29:24 · 1359 阅读 · 0 评论 -
关于MFC当中使用VC(C++)8位BMP提取Y通道平均值的笔记
第一点、关于8位bmp图片,首先拿到图片如果是彩色的那么该图片调色板并没有进行灰度化,要进行灰度化转换才能够使bmp图片变成灰度图片。关于调色板进行灰度调整的代码如下: for(i=0;i<256;i++) { tempRgbArr[i].rgbRed = i; tempRgbArr[i].rgbGreen = i; tempRgbArr[i].rgb原创 2017-08-01 19:01:44 · 664 阅读 · 0 评论 -
ARM汇编和C混合编程-笔记
ARM复位启动先执行汇编指令,完成硬件的初始化(为什么不用C语言?因为C语言无法访问ARM内部的寄存器,例如栈,所以需要汇编来进行初始化)C语言能不能跟汇编相互并且反复调用? 不能,因为这样容易导致局部变量的混用。汇编调用C程序.global _start_start: @将GPJ2_3 --->output LDR R0, =0xe0200280 //R0=0xe020028原创 2016-11-26 15:08:16 · 1008 阅读 · 0 评论 -
S5PV210-UART-笔记整理
Universal Asynchronous Receiver and Transmitter----通用异步收发器。奇偶校验:奇校验:信息码之后再加上一个1,信息码中的1的个数加上后面1个1的个数之后如果是奇数那么数据就是准确的。偶校验:跟奇校验相反。使用C实验一段数据的CRC校验:#include //计算二进制位数int bit_len(unsig原创 2016-12-01 20:18:34 · 861 阅读 · 0 评论 -
关于SOCKET通信的几点注意点
1、在日常通信过程中,服务端和接收端进行数据校验比较的时候,一般来说发送端会使用send,发出的是数据buffer,并且需要数据的长度,这个时候取长度是不能使用sizeof而应该使用strlen。因为sizeof取长度会默认加上截止符的长度也就是'\0',如果加上这个会对之后的数据比较代码异常,这个错误很细小也很不容易发现。...原创 2018-07-05 11:22:10 · 631 阅读 · 0 评论