⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comm.c

📁 bds2006下面的串口操作
💻 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 + -