自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自我项目说明_重构公司内部测试软件(正在进行)

说明:该博客仅对自己所独立作出的作品进行说明,仅用于HR先期了解。项目说明:VS+QT联合编程 视频图像输出显示,实时 各类功能简化为基础类(测试类、日志类、辅助显示类等) 界面的实时信息输出 VS2015,Qt 5.9.3,c++ 详细内容不在本博客上继续阐述...

2020-04-23 09:15:55 197

原创 自我项目说明_产线数据接收软件

说明:该博客仅对自己所独立作出的作品进行说明,仅用于HR先期了解。项目说明:基于串口接收、字符串解析的软件 VC6,C++,基于基本对话框 独立界面设计、代码开发、后期验证维护 详细内容不在本博客上继续阐述...

2020-04-23 09:05:34 270

原创 自我项目说明_多台电脑联控并控制设备并同测试电脑通讯的主控软件

说明:该博客仅对自己所独立作出的作品进行说明,仅用于HR先期了解。项目说明:能够使用串口控制多台测试电脑,并且使用网络同同一电脑软件进行通讯 可读取XML文档 多线程 按照需求,按照流程制定运行流程 VS2015,C++,基于基本对话框 详细内容不在本博客上继续阐述...

2020-04-23 08:58:38 372

原创 自我项目说明_公司内部数据库查询软件

项目说明点:背景是公司内部需要从数据库中获取生产数据,需要创建一个可视化的查询界面进行查询、整理、数据导出 该项目采用VS2015编译器进行编译,语言是C++语言,工程是基于基本对话框,期间使用SQL语言进行查询获取数据 内部主要是将数据通过ListControl控件进行显示分列,该软件还通过第三方库进行https接口的使用。数据的导入查询和导出查询支持Excel和CSV格式,使用的是...

2020-04-23 08:41:56 409

原创 关于SOCKET通信的几点注意点

1、在日常通信过程中,服务端和接收端进行数据校验比较的时候,一般来说发送端会使用send,发出的是数据buffer,并且需要数据的长度,这个时候取长度是不能使用sizeof而应该使用strlen。因为sizeof取长度会默认加上截止符的长度也就是'\0',如果加上这个会对之后的数据比较代码异常,这个错误很细小也很不容易发现。...

2018-07-05 11:22:10 582

原创 关于串口出现使用虚拟串口调试正常但是物理串口调试出现数据重复错误

下面是程序使用虚拟串口进行调试的画面:原发数据为:01 03 02 00 01 79 84,数据都是正常的,接下来使用物理串口进行调试就会出现数据重叠或者重复的现象,物理串口指的是用物理串口线插到电脑端口进行通信,模拟日常生产或者使用的情景。但是以上情况在进行调试的时候单步走就不会出现重叠或者重复现象。以上原因类似于:程序在进行串口接收的时候一般是在线程中使用while循环进行读取,然后当whil...

2018-07-05 11:16:10 2485

原创 关于处理串口出现分段接收数据的情况

在进行串口接收的时候由于串口线和外界因素的影响会出现数据接收出现分段的情况,本来发送端发出的是一段完整的数据但是接收端却接收到的是两段甚至是三段数据。以上接收端会出现类似于两段接收的情况但是中间间隔极短,所以最简单的是在一接收到数据之后进行读秒倒计时譬如在1.5s内也进行数据接收和数据拼接,1.5秒后在对数据进行拼接判断是不是符合要求的数据。...

2018-07-03 21:48:17 9115 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 2150 1

原创 创建动态库和使用动态库【VC6.0】

要在MFC上面使用动态库,新建MFC AppWizard (dll),选择中间的dll选项。首先在.h文件中声明函数extern "C" _declspec(dllexport) int TestFunction(int arg1,int arg2); 然后在.cpp文件中写明函数主体int TestFunction(int arg1,int arg2){ return 1;

2017-08-18 09:12:41 495

原创 【#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 1288

原创 MFC编程中遇到的问题记录

LINK : warning LNK4089: all references to "WS2_32.dll" discarded by /OPT:REF1、在工程->设置->连接->工程选项中 添加  /opt:noref  即可。出现这种情况的原因:这个问题一般出现在release版中,当release版编译时会对代码进行优化,将程序中实际上并没用到的,而在工程中链接了的库放弃而不编

2017-08-15 09:01:53 407

原创 第二个项目:多线程

创建线程: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 402

原创 关于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 638

原创 读取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 764

原创 各类实用小程序

BCD码转换成十进制整形数概述:BCD码表现形式为十六进制,但并非为十六的进制,所以取数值只要位取再者相乘进制值就可以了。#include int bcd2dec(int val){ int i; i=(val>>4)*10+val&0xf; return i;}int main(void){ int a=0x10; printf("res=%d\n",bcd2de

2016-12-08 10:28:12 666

原创 S5PV210-UART-笔记整理

Universal Asynchronous Receiver and Transmitter----通用异步收发器。奇偶校验:奇校验:信息码之后再加上一个1,信息码中的1的个数加上后面1个1的个数之后如果是奇数那么数据就是准确的。偶校验:跟奇校验相反。使用C实验一段数据的CRC校验:#include //计算二进制位数int bit_len(unsig

2016-12-01 20:18:34 838

转载 计算二进制数的位数

#include int bit_len(unsigned int n){int len;for(len=0;n;len++)n>>=1;return len;}int main(void){int a=0x50;int b=bit_len(a);printf("b=%d\n",b);return 0; }

2016-11-30 20:50:56 2329

原创 CRC循环冗余校验码的基本原理-笔记

基本原理:在K位信息码(我们要传递的值-二进制)后面加上R位的校验码,R位即为G(x)多项式的最高幂(校验码的位数比生成除数的位数少1)。整个码的长度为N位,根据N位和K位查表找到多项式G(x)。根据G(x)生成除数用来接收端判断数据是否正确(收到的整个编码如果能够整除除数的话那么就是完整并且正确的数据)。G(x)多项式从表中通过信息码的位数得到相应的G(x)多项式,得到之后,可以从多项式中算出除数

2016-11-30 19:18:22 1286

原创 S5PV210-ADC

1、输入电压的范围0~3.3V 2、转换后数字量可选:10位/12位 3、片上保持功能,数据转换之后存放在寄存器中直到有新的数据转换出来在这之前一直存储在寄存器中 4、有10个通道,但是只有一个转换器,同一时间只能转换一个通道里面的数据,采用分时复用关于数字量和模拟量之间的转换: 模拟量输入2.0V,ADC工作在12bits模式,得到数字量应该是多少??? 2/3*4096=2730.66

2016-11-29 19:29:24 1006

原创 S5PV210-看门狗(watchdog)

#include "int.h" void wdt_init_interrupt(void){ //设置8到15位,先清零然后再设值,2^8-1,先设定分频系数为66,那么66/66=1MHZ WTCON &= ~(0xff<<8); WTCON |= (65<<8); //设值之后的分频,先两位清零然后 11 ,1/128,1.28us WTCON |=

2016-11-29 19:01:47 1669

原创 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 983

原创 ARM汇编部分指令

ARM部分汇编指令: 1、数据处理指令 完成立即数和通用寄存器之间的数据处理。 1)数据传送指令 mov R0,#100 mov PC, LR mvn R1, #100 —>按位取反,在传递 2)比较指令 —>自动影响标志位 CMP R0,#10 —>R0-10 —>NZCV TEQ R1,#100 TST R1,#(1<<10)

2016-11-26 14:45:23 715

原创 怎么判断32位系统下是大端还是小端

小端:就是数据的低字节存储在地址的低字节位,数据的高字节存储在地址的高字节位大端:数据的高字节位存储在地址的低字节位,数据的低字节位存储在地址的高字节位如何判断?#include int main(void){ int a=0x1234; char b=a; printf("b=%#x\n",b); return 0;}利用强制转换,因为是隐式强制转换,那么

2016-11-26 12:53:09 1551

原创 ARM 中断--IRQ and FIQ配置--外部配置

中断分为外部中断和定时器中断;中断源都是有一个触发条件,条件满足就会产生中断。不同的中断源触发条件不一样ARM中中断分为两种:FIQ(fast interrupt request)快速中断请求,IRQ(interrupt requrest)一般的中断请求为什么FIQ比IRQ的中断响应更快?在ARM体系中,FIQ的优先级比IRQ高,FIQ优先级为3,IRQ优先级为4,FIQ和IR

2016-11-25 19:56:15 4585

原创 ARM体系当中汇编和C混编传参的规则

使用ATPCS规则进行传参。在进行汇编和C语言传参的时候,R0,~R3是默认可以进行参数传递,给R0~R3给定数值,就可以进行传参

2016-11-25 10:38:20 778

转载 如何判断在ARM汇编中立即数的合法性?

转自 jackarm自己总结了一个方法不知道是否全面,请高手指教1.如十六进制数在0x00到0xFF之间,则它一定是合法的1.若十六进制数>0XFF则将十六进制的数转化成十进制2.如果这个十进制数能够被4整除则这个十六进制的立即数和合法的,否则是非法的3例如:0x101=257/4=64.25 非法            0x104=260/4=

2016-11-24 12:39:18 1172

原创 汇编作业

蜂鸣器汇编:.global _start_start:LDR R0,=0XE02000A0LDR R1,[R0]BIC R1,R1,#(0XF)ORR R1,R1,#(0X1)STR R1,[R0]loop:LDR R0,=0XE02000A4LDR R1,[R0]MOV R1,#0STR R1,[R0]BL delayLDR R0,=0XE02000A4LDR R1,[R0]MOV R1,#

2016-11-23 20:55:54 507

原创 汇编代码摘记

【LDR】 加载指令 LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用亍从存储器中读取32位的字数据到通用寄存器,然后对数据迕行处理。范例:【 LDR R0,=0XE0200280 】 讲一个地址传送到R0寄存器中【 LDR R1,[R0] 】 将R0寄存器中读取的值存放到R1寄存器当中【BIC】 BIC指令用亍清除操作数1的某些位,幵把

2016-11-23 20:54:56 639

空空如也

空空如也

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

TA关注的人

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