📄 编辑1.bak
字号:
// -------------------------------------------
// 串口读取数据
// -------------------------------------------
void ReadFromCom()
{
int j;
char ch;
unsigned long addr;
char buf[256];
int hfile;
int werr;
int realwritesize;
int error;
if (ShowMessage("串口读取数据", "请连接设备的串口", MB_CANCEL | MB_OK, true) == MR_CANCEL)
return;
clrscr();
hCom = open(COM1, BAUD_9600);
if(hCom == INVALID_DEV_HANDLE)
{
ShowMessage("打开串口", "失败!", MB_CANCEL | MB_OK, true);
}
while (true){
for(j=0;j<18;j++)
blkin[0] = 0;
error = RxTx(READ,NULL,NULL,0);
if(error == ERR_NONE)
{
memcpy(buf,&blkin[2],13);
addr = (unsigned long)((buf[0]<<24)|(buf[1]<<16)|(buf[2]<<8|(buf[3])));
if(RxOkAck(addr) == ERR_OTHER)
{ //发送确认
ShowMessage("发送确认", "失败",MB_OK | MB_CANCEL, true);
break;
}
hfile = file_open("DAT",WRITE_ONLY);
if(hfile<0)
{
if(ShowMessage("打开文件", "失败!", MB_OK, true)==MB_OK)
break;
}
file_seek(hfile,0,SEEK_FILE_END);
werr = file_write(hfile,buf,13,&realwritesize);
if(werr == 0)
{
file_close(hfile);
// ShowMessage("写入数据", "写入成功", MB_OK, true);
continue;
}
else if(werr == NO_ENOUGH_MEMORY)
{
file_close(hfile);
if(ShowMessage("写入数据", "空间不足", MB_OK, true)==MB_OK)
break;
}
else
{
file_close(hfile);
if(ShowMessage("写入数据", "文件不可写", MB_OK, true) ==MB_OK)
break;
}
i++;
}
else if(error == DATA_OVER)
{
clrscr();
if(ShowMessage("串口读取数据", "结束!", MB_OK, true)==MB_OK)
break;
}
else if(error == ERR_OTHER){
clrscr();
if(ShowMessage("串口读取数据", "失败", MB_OK, true)==MB_OK)
break;
}
}
close(hCom);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -