📄 comm.c
字号:
#include"pcomm.h"
#define ILEN 1024
int istart,iend;
int port_bak,baud_bak;
char reseive_buff[ILEN];
/********************************************************/
void put_str(char *p)
{
sio_write(port_bak,p,strlen(p));
}
/********************************************************/
char get_ch_1(void)
{
if(istart == iend)
return(NULL);
return (reseive_buff[istart++ & (ILEN-1)]);
}
/********************************************************/
void get_ch_n(char *p,int n)
{
int i;
for(i=0;(i<n)&&(istart!=iend);i++)
*p++ = (reseive_buff[istart++ & (ILEN-1)]);
}
/********************************************************/
void get_str(char *p)
{
int i=0;
while(istart!=iend)
{
*p++ = (reseive_buff[istart++ & (ILEN-1)]);
if(i++ > 255)
break;
}
*p = '\0';
}
/********************************************************/
void __stdcall cntirq(int port)
{
int i;
i = sio_iqueue(port);
for(;i>0;i--)
{
if ((istart+ILEN) != iend)
{
reseive_buff[iend++ & (ILEN-1)] = sio_getch(port); // 接 收 数 据
}
}
}
/********************************************************/
int open_comm(int port)
{
int i;
i = sio_open(port);
sio_ioctl (port, baud_bak, P_NONE | BIT_8 | STOP_1 );
void (__stdcall *p)(int);
p = cntirq;
sio_cnt_irq(port,*p,1);
port_bak = port;
return(i);
}
/********************************************************/
void close_comm(void)
{
sio_close(port_bak);
}
/********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -