串口发送的数据的格式 有格式的 长度(2)+数据+0x03+lrc
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
HANDLE gComHandle;
#define SI 0xf
#define SO 0xe
#define STX 0x02
#define ETX 0x03
void LogToFile(char *fmt,...)
{
va_list pvar;
char buffer[2048];
char log[2048];
// char filename[40];
// FILE *fp;
// memset(filename,0,sizeof(filename));
// sprintf(filename,"%08d.txt",GetDate());
// fp=fopen(filename,"a");
memset(buffer,0,sizeof(buffer));
memset(log,0,sizeof(log));
va_start(pvar,fmt);
vsprintf(buffer,fmt,pvar);
va_end(pvar);
sprintf(log,"%s",buffer);
printf("%s\n",log);
// fprintf(fp,"%s\n",log);
fflush(stdout);
// fflush(fp);
// fclose(fp);
}
unsigned char GenLrc(unsigned char *Data,size_t DataLen)
{
unsigned int i;
unsigned char lrc = 0;
for (i = 0; i < DataLen; i++)
{
lrc ^= Data[i];
}
return lrc;
}
int InitCom(void)
{
COMMTIMEOUTS TimeOuts;
DCB dcb;
gComHandle=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(gComHandle==(HANDLE)-1)
{
LogToFile("打开COM失败!");
return -1;
}
SetupComm(gComHandle,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024
// 设定读超时
TimeOuts.ReadIntervalTimeout=MAXDWORD;
TimeOuts.ReadTotalTimeoutMultiplier=MAXDWORD;
TimeOuts.ReadTotalTimeoutConstant=10
与pos机相连的windows端测试程序
最新推荐文章于 2021-03-03 21:54:06 发布