c语言串口通信范例

合集下载

51单片机的串口通信程序(C语言)

51单片机的串口通信程序(C语言)

51单片机的串口通信程序(C语言) 51单片机的串口通信程序(C语言)

在嵌入式系统中,串口通信是一种常见的数据传输方式,也是单片

机与外部设备进行通信的重要手段之一。本文将介绍使用C语言编写

51单片机的串口通信程序。

1. 硬件准备

在开始编写串口通信程序之前,需要准备好相应的硬件设备。首先,我们需要一块51单片机开发板,内置了串口通信功能。另外,我们还

需要连接一个与单片机通信的外部设备,例如计算机或其他单片机。

2. 引入头文件

在C语言中,我们需要引入相应的头文件来使用串口通信相关的函数。在51单片机中,我们需要引入reg51.h头文件,以便使用单片机

的寄存器操作相关函数。同时,我们还需要引入头文件来定义串口通

信的相关寄存器。

3. 配置串口参数

在使用串口通信之前,我们需要配置串口的参数,例如波特率、数

据位、停止位等。这些参数的配置需要根据实际需要进行调整。在51

单片机中,我们可以通过写入相应的寄存器来配置串口参数。

4. 初始化串口

在配置完串口参数之后,我们需要初始化串口,以便开始进行数据

的发送和接收。初始化串口的过程包括打开串口、设置中断等。

5. 数据发送

在串口通信中,数据的发送通常分为两种方式:阻塞发送和非阻塞

发送。阻塞发送是指程序在发送完数据之后才会继续执行下面的代码,而非阻塞发送是指程序在发送数据的同时可以继续执行其他代码。

6. 数据接收

数据的接收与数据的发送类似,同样有阻塞接收和非阻塞接收两种

方式。在接收数据时,需要不断地检测是否有数据到达,并及时进行

处理。

7. 中断处理

在串口通信中,中断是一种常见的处理方式。通过使用中断,可以

用c语言实现串口读写程序

用c语言实现串口读写程序

用c语言实现串口读写程序

一、前言

串口通信是一种常见的通信方式,它可以实现单片机与计算机之间的数据传输。在嵌入式系统中,使用串口通信可以方便地进行调试和数据传输。本文将介绍如何使用C语言实现串口读写程序。

二、硬件准备

在进行串口通信之前,需要准备好相应的硬件设备。一般来说,需要一台计算机和一个串口转USB模块(或者直接使用带有串口接口的计算机)。同时,在单片机端也需要连接一个串口模块。

三、C语言编程实现

1. 打开串口

在C语言中,可以通过打开文件的方式来打开串口设备。下面是一个示例代码:

```

#include

#include

#include

int open_serial_port(const char *device_path, int baud_rate) {

int fd;

struct termios options;

fd = open(device_path, O_RDWR | O_NOCTTY | O_NDELAY); if (fd == -1) {

perror("open_serial_port: Unable to open device");

return -1;

}

fcntl(fd, F_SETFL, 0);

tcgetattr(fd, &options);

cfsetispeed(&options, baud_rate);

cfsetospeed(&options, baud_rate);

options.c_cflag |= (CLOCAL | CREAD);

options.c_cflag &= ~PARENB;

C语言实现串口通信

C语言实现串口通信

C语言实现串口通信

在使用系统调用函数进行串口通信之前,需要打开串口设备并设置相关参数。打开串口设备可以使用open(函数,设置串口参数可以使用termios结构体和tcsetattr(函数。

以下是一个简单的串口通信接收数据的示例代码:

```c

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <unistd.h>

#include <termios.h>

int main

int fd; // 串口设备文件描述符

char buff[255]; // 存储接收到的数据

int len; // 接收到的数据长度

//打开串口设备

fd = open("/dev/ttyS0", O_RDONLY);

if (fd < 0)

perror("Failed to open serial port");

return -1;

}

//设置串口参数

struct termios options;

tcgetattr(fd, &options);

cfsetspeed(&options, B1200); // 设置波特率为1200 tcsetattr(fd, TCSANOW, &options);

//接收数据

while (1)

len = read(fd, buff, sizeof(buff)); // 从串口读取数据if (len > 0)

buff[len] = '\0'; // 将接收到的数据转为字符串

c语言怎么写串口通信编程 -回复

c语言怎么写串口通信编程 -回复

c语言怎么写串口通信编程 -回复

在C语言中进行串口通信编程,你需要了解串口的基本原理以及相关的函数和库。串口通信是一种通过串行数据传输进行通信的方式,常用于嵌入式系统中与外部设备进行数据交互。本文将以步骤的形式来介绍如何在C语言中进行串口通信编程。

步骤一:了解串口的基本原理

在开始串口通信编程之前,你需要了解串口的基本原理。串口是通过发送和接收数据位的序列来进行通信的。串口通信需要考虑的一些参数包括波特率(即数据传输速率)、数据位数、校验位和停止位等。波特率指的是每秒钟传输的位数,可以是常用的9600、19200、38400等。

步骤二:选择合适的串口库

在C语言中,你可以选择使用合适的串口库来简化串口通信的编程工作。常见的串口库包括Windows系统中的WinAPI、Linux系统中的termios库等。选择库的时候,需根据你所使用的操作系统和开发环境进行选择。

步骤三:打开串口

在开始使用串口进行通信之前,需要先打开串口。使用串口库的函数,可以根据需要选择打开特定的串口,一般通过指定串口名称或者端口号来进行打开。打开串口的函数可能返回一个文件描述符或者句柄,用于后续的读写操作。

步骤四:配置串口参数

打开串口之后,需要进行串口参数的配置。这包括波特率、数据位数、校验位和停止位等参数的设置。一般通过调用相应的函数,将需

要设置的参数传递给串口库,以完成参数的配置。

步骤五:读取串口数据

配置完串口参数后,你可以开始读取串口数据。通过调用读取函数,你可以从串口接收缓

冲区中获取数据,并进一步进行处理。读取函

计算机网络实验RS232串口通信程序的编写

计算机网络实验RS232串口通信程序的编写

计算机网络实验RS232串口通信程序的编写RS232是一种常见的串行通信接口,用于在计算机和其他外部设备之间传输数据。它广泛应用于各种设备和应用程序,如串口调试工具、点阵打印机等。

本文将介绍如何编写一个基本的RS232串口通信程序。我们将使用C 语言和Linux操作系统来演示。

在开始编写程序之前,我们需要了解一些RS232串口的基本概念和通信协议。RS232串口由发送线(TX)、接收线(RX)、控制线(如RTS、CTS、DTR和DSR)等组成。通信时,发送方将数据从TX线发送到接收方的RX线,然后接收方通过RX线接收数据。

以下是一个简单的RS232串口通信程序示例:

```c

#include

#include

#include

#include

#include

int mai

int fd = open("/dev/ttyS0", O_RDWR , O_NOCTTY); // 打开串口设备

if (fd == -1)

perror("打开串口失败");

exit(1);

}

struct termios options;

tcgetattr(fd, &options); // 获取当前串口设置//设置波特率为9600

cfsetispeed(&options, B9600);

cfsetospeed(&options, B9600);

//设置数据位为8位,无奇偶校验,停止位为1位options.c_cflag &= ~PARENB;

options.c_cflag &= ~CSTOPB;

options.c_cflag &= ~CSIZE;

c语言串口通信范例完整版

c语言串口通信范例完整版

c语言串口通信范例标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

一个c语言的串口通信程序范例

标签:分类:

最近接触一个项目,用HL-C1C激光位移传感器+易控组态软件完成生产线高度跳变检测,好久没有接触c c#,一些资料,找来做个记录,也许大家用的着

#include <>

#include <>

#include <>

#include <>

#define COM232 0x2f8

#define COMINT 0x0b

#define MaxBufLen 500

#define Port8259 0x20

#define EofInt 0x20

static int comportaddr;

static char intvectnum;

static unsigned char maskb;

static unsigned char Buffer[MaxBufLen];

static int CharsInBuf,CircIn,CircOut;

static void (interrupt far *OldAsyncInt)();

static void interrupt far AsyncInt(void);

void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity) {

串口通信之用C语言编写串口程序

串口通信之用C语言编写串口程序

串口通信之用C语言编写串口程序

在当今,流行的编程软件种类繁多,它们编程方便、易于维护,但是在与硬件直接打交道和编制系统软件时却束手无策,于是C语言就有了用武之地。C语言作为汇编语言与高级语言之间的一种过渡语言,兼有汇编语言的高效和高级语言的方便。

在通讯中,为了保证行运安全可靠,标准的串行口必须具有许多握手信号和状态信息。这是因为通讯的各个计算机CPU速度不一样(这会导致“错帧”)以及发送机发送数据速度比接收机接收速度快(这会导致“过冲”)。为解决这个问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节(低4位)

的数据,而另外半个字节(高4位)则用来传送信息。我们可以对信息位(高4位)进行如下简单的编码:

0H:发送的是新的半个字节数据

1H:重新发送上次传送错误的数据

2H:文件名结束

3H:文件结束

这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就是发送机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节相比较,如果相同,就发送新的半个字节,否则就重新发送。新数据与旧数据通过信息位来区分。下面就是用C 语言编写控制串行口的程序。

#include "dos.h"

#include "stdlib.h"

#include "stdio.h"

#define PORT 0

void SendFile(char *fname); /* 发送文件*/

void Send(int s); /*发送一个字节*/

void SendFileName(char *fname); /*发送文件名*/

基于C语言的RS232串口通信的设计

基于C语言的RS232串口通信的设计

基于C语言的RS232串口通信的设计

RS232是一种常见的串行通信接口,广泛用于计算机与外部设备之间

的数据传输。RS232串口通信涉及到多个方面的设计,包括串口参数设置、数据的发送与接收等。本文将以C语言为基础,介绍如何设计一个基于

RS232串口通信的程序。

接下来,我们需要编写数据发送和接收的函数。数据的发送包括两个

步骤:打开串口和发送数据。首先,我们需要打开串口,并设置好相应的

参数。在C语言中,可以通过打开文件的方式来打开串口设备文件。例如,可以使用`fopen(`函数打开串口设备文件:

```

FILE* serial_port = fopen("/dev/ttyS0", "w");

if(serial_port == NULL)

printf("Failed to open the serial port.\n");

return -1;

```

然后,我们可以使用`fprintf(`函数将数据写入串口设备文件,实现

数据的发送:

```

fprintf(serial_port, "Hello, RS232!\n");

```

数据的接收与数据的发送类似,也包括两个步骤:打开串口和接收数据。我们仍然可以使用`fopen(`函数打开串口设备文件,并设置好相应的

参数。然后,可以使用`fgets(`函数从串口设备文件中读取数据:```

char buffer[1024];

fgets(buffer, sizeof(buffer), serial_port);

printf("Received Data: %s", buffer);

c语言串口编程实例

c语言串口编程实例

c语言串口编程实例

摘要:

1.串口编程基础

2.C 语言串口编程步骤

3.C 语言串口编程实例

4.实例详解

5.总结

正文:

一、串口编程基础

串口编程是指通过计算机串行接口进行数据通信的编程方式。串口(Serial Port)是一种计算机硬件接口,可以通过串行通信传输数据。与并行通信相比,串行通信只需一条数据线,传输速度较慢,但具有线路简单、成本低的优点。因此,串口编程在电子设备、计算机外设、通信设备等领域有广泛的应用。

二、C 语言串口编程步骤

1.包含头文件:在使用C 语言进行串口编程时,首先需要包含头文件

`<reg52.h>`或`<intrins.h>`。

2.配置串口:配置串口包括设置波特率、数据位、停止位、奇偶校验等参数。

3.初始化串口:初始化串口主要是初始化串口硬件,如配置UART(通用异步收发器)等。

4.打开串口:打开串口是指使能串口通信功能,以便数据传输。

5.读写串口:通过`in`和`out`语句实现数据的输入输出。

6.关闭串口:在数据传输完成后,需要关闭串口以节省资源。

7.串口通信:通过循环寄存器、缓存寄存器或FIFO(先进先出)等方法实现数据的收发。

三、C 语言串口编程实例

以下是一个简单的C 语言串口编程实例,该实例通过串口发送数据“Hello, World!”:

```c

#include <reg52.h>

#include <intrins.h>

sbit UART_TXD = P3^1; // 配置UART TXD 引脚

void init_uart(); // 初始化UART 函数

C语言 做串口通讯程序

C语言    做串口通讯程序

一、引言:

现在在工业现场很少有人再用C语言做串口通讯程序了,但是基于DOS环境的程序还是有它的优势的。DOS系统的单任务环境是系统运行更加稳定、可靠;在一些追求很高的可靠性的系统中还是有一定的价值的。本文通过C语言控制PLC实现简单的物料传送为例子。

二、硬件介绍:

1、CPM1A采用RS232串口通讯与上位机连接,在PLC的DM区中可以设定串口参数,本文采用默认值:

串口通信格式:

1位---起始位、9600---波特率、7位---数据位、2位---停止位、偶校验

2、C语言中用于串口读写的函数:bioscom,在bios.h头文件中。

Bioscom用法:bioscom(int cmd,char byte,int port)

Cmd的值:0 设置通信参数为btye值

1 发送一个字符到串口

2 从串口接收一个字符

3 返回串口端口的状态

byte的值:0x02 7数据位0x03 8位数据位

0x00 1个停止位0x04 2个停止位

0x00 无奇偶校验0x08奇校验

0x18偶校验0x80 1200波特率

0xA0 2400波特率0xC0 4800波特率

0xE0 9600波特率

注意:在对串口初始化时,上述参数值相或附给byte。

Port的值:0 端口1

1 端口2

三、完整源代码:

#include /* 此头函数请不要删除*/

#include

#include

#define F1 0x3B /*启动*/

#define F2 0x3C /*停止*/

#define F3 0x3D /*混料*/

#define F4 0x3E /*出料*/

模拟串口的三种方法及C语言

模拟串口的三种方法及C语言

模拟串口的三种方法及C语言

模拟串口是软件中模拟实现串口通信的一种方法,它是在电脑上通过

软件模拟两个串口之间的传输,用来测试、调试串口相关的应用程序。本

文将介绍三种常见的模拟串口的方法,并提供C语言代码示例。

1.使用虚拟串口软件

虚拟串口软件是一种用于模拟串口通信的应用程序。它创建了虚拟的

串口设备,使其在电脑上模拟出真实的串口通信环境。通过虚拟串口软件,可以实现串口的模拟收发数据,可以连接到串口测试工具、串口调试工具

或者自己编写的串口通信程序上。

以下是一个使用虚拟串口软件模拟串口通信的C语言代码示例:

```c

#include <stdio.h>

#include <windows.h>

int mai

//打开虚拟串口

//检测串口是否成功打开

printf("Error in opening serial port\n");

return 1;

}

//进行串口通信操作,如发送、接收数据

//关闭串口

return 0;

```

在这个示例中,我们使用了Windows操作系统的函数`CreateFile`来打开一个虚拟串口,这里的串口名称是"COM1"。然后可以调用相关函数进行串口通信操作,最后用`CloseHandle`函数关闭串口。

2.使用串口驱动模拟

在一些情况下,可以通过修改电脑的串口驱动程序来模拟串口通信。这种方法需要更深入的了解操作系统的底层机制,并进行驱动程序的开发和修改。通过修改串口驱动程序,可以模拟出一个虚拟的串口设备,通过这个设备进行串口通信。

以下是一个简单的C语言代码示例,用于修改串口驱动程序来模拟串口通信:

51单片机两机串口通信c程序

51单片机两机串口通信c程序

51单片机两机串口通信c程序(共

2页)

--本页仅作为文档封面,使用时请直接删除即可--

--内页可以根据需求调整合适字体及大小--

发送机

#include<>

#define uchar unsigned char

#define uint unsigned int

uchar code xuehao1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code xuehao2[]={2,0,0,9,0,5,4,0,2,1,5,3};

void send(uchar dat)

{

SBUF=dat; //将待发送的数据写入发送缓存器中

while(TI==0) //只要接收中断标志位

; //空操作

TI=0; //为了接收下一帧数据,需用软件降RI清零

}

void delay()

{

uchar m,n;

for(m=0;m<200;m++)

for(n=0;n<250;n++);

}

void main()

{

uchar i;

TMOD=0x20;//定时器T1工作于方式2

SCON=0x50;//串口工作方式1

PCON=0x00;//电源控制寄存器,波特率不加倍

TH1=0xfd; //波特率为 9600()

TL1=0xfd;

TR1=1; //启动定时器T1

while(1)

{

for(i=0;i<12;i++)

{

send(xuehao1[xuehao2[i]]); //发送数据i

delay();

delay();

delay();

C语言实现串口通信

C语言实现串口通信

C语言实现串口通信

串口通信是一种常见的数据传输方式,用于在计算机和外部设备之间

传递数据。C语言提供了丰富的库函数和操作符,可以方便地实现串口通信。本文将介绍C语言实现串口通信的基本原理和步骤。

首先,需要了解串口通信的基本概念。串口是计算机与外部设备之间

进行数据传输的接口,它包括发送和接收两根数据线。串口通信的数据传

输是通过串口的发送和接收缓冲区来完成的。数据从发送缓冲区发送到外

部设备,外部设备将数据发送到接收缓冲区,计算机通过读取接收缓冲区

来获取数据。

在C语言中实现串口通信需要使用操作系统提供的串口API,这些

API包含了一系列函数用于打开串口、配置串口参数、发送和接收数据等

操作。常见的串口API包括Windows的WinAPI、Linux的termios等。

首先,需要打开串口。在Windows下,可以使用CreateFile函数打

开串口设备文件,并返回一个句柄用于后续操作。在Linux下,可以使用open函数打开串口设备文件,并返回一个文件描述符。

然后,可以使用串口的发送函数发送数据。发送函数通常传入一个缓

冲区和数据长度作为参数,将数据发送到串口发送缓冲区。在Windows下,可以使用WriteFile函数发送数据。在Linux下,可以使用write函数发

送数据。

最后,可以使用串口的接收函数接收数据。接收函数通常传入一个缓

冲区和数据长度作为参数,将串口接收缓冲区的数据读取到缓冲区中。在Windows下,可以使用ReadFile函数接收数据。在Linux下,可以使用read函数接收数据。

简单的C串口通信

简单的C串口通信

using System;

using System、Collections、Generic;

using System、ComponentModel;

using System、Data;

using System、Drawing;

using System、Text;

using System、Windows、Forms;

using System、IO、Ports;

using System、IO;

namespace WindowsApplication6

{

public partial class Form : Form

{

public Form()

{

InitializeComponent();

}

int sentnumber = 0;

private SerialPort comm = new SerialPort();//建立一个对象

public delegate void HandleInterfaceUpdataDelegate(string text);

private HandleInterfaceUpdataDelegate interfaceUpdataHandle;

private void Form1_Load(object sender, EventArgs e)

{

}

//发送按钮

private void buttonsent_Click(object sender, EventArgs e)

{

byte[] data = Encoding、Unicode、GetBytes(textBoxsent、Text);

c语言怎么写串口通信编程

c语言怎么写串口通信编程

c语言怎么写串口通信编程

串口通信是一种广泛应用于嵌入式系统和电子设备之间的通信方式。无论是嵌入式开发还是电子设备控制,串口通信都是常见的需求。在C语言中,实现串口通信需要通过操作串口的硬件寄存器和使用相应的通信协议来实现数据的发送和接收。本文将一步一步介绍如何使用C语言编写串口通信程序。

第一步:打开串口

要开始串口通信,首先需要打开串口。在C语言中,可以使用文件操作函数来打开串口设备。通常,串口设备被命名为/dev/ttyS0,/dev/ttyS1等,具体名称取决于系统。下面是一个打开串口设备的示例代码:

c

include <stdio.h>

include <fcntl.h>

include <termios.h>

int open_serial_port(const char *port) {

int fd = open(port, O_RDWR O_NOCTTY

O_NDELAY);

if (fd == -1) {

perror("open_serial_port");

return -1;

}

设置串口属性

struct termios options;

tcgetattr(fd, &options);

cfmakeraw(&options);

cfsetspeed(&options, B9600);

tcsetattr(fd, TCSANOW, &options);

return fd;

}

int main() {

const char *port = "/dev/ttyS0";

qt串口通信c语言代码

qt串口通信c语言代码

qt串口通信c语言代码

引言概述:

QT串口通信是一种基于C语言的编程技术,它可以实现计算机与外部设备之间的数据交互。本文将从五个大点出发,详细阐述QT串口通信的C语言代码实现。

正文内容:

1. 串口通信的基本原理

1.1 串口通信的定义和作用

1.2 串口通信的工作原理

1.3 串口通信的数据传输方式

2. QT串口通信的C语言代码实现

2.1 QT串口通信的环境搭建

2.2 QT串口通信的代码编写

2.3 QT串口通信的数据收发处理

3. QT串口通信的常见问题与解决方法

3.1 串口通信的波特率设置问题

3.2 数据传输的校验与校验位设置问题

3.3 数据的发送与接收缓冲区处理问题

4. QT串口通信的扩展功能

4.1 串口通信的多线程处理

4.2 串口通信的数据转换与解析

4.3 串口通信的错误处理与异常情况处理

5. QT串口通信的应用实例

5.1 串口通信在嵌入式系统中的应用

5.2 串口通信在数据采集与监控系统中的应用

5.3 串口通信在机器人控制系统中的应用

总结:

通过本文的阐述,我们了解了QT串口通信的C语言代码实现。首先,我们介绍了串口通信的基本原理,包括定义和作用、工作原理以及数据传输方式。然后,我们详细讲解了QT串口通信的C语言代码实现,包括环境搭建、代码编写和数据收发处理。接着,我们列举了一些常见问题,并提供了解决方法。此外,我们还介绍了QT串口通信的扩展功能和应用实例,展示了其在不同领域的应用前景。通过学习和实践,我们可以更好地掌握QT串口通信的C语言代码编写技巧,为实际应用提供有力支持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个c语言的串口通信程序范例

分类:技术笔记

标签:

c语言

串口通信

通信程序

it

最近接触一个项目,用HL-C1C激光位移传感器+易控组态软件完成生产线高度跳变检测,好久没有接触c c#,一些资料,找来做个记录,也许大家用的着

#include

#include

#include

#include

#define COM232 0x2f8

#define COMINT 0x0b

#define MaxBufLen 500

#define Port8259 0x20

#define EofInt 0x20

static int comportaddr;

static char intvectnum;

static unsigned char maskb;

static unsigned char Buffer[MaxBufLen];

static int CharsInBuf,CircIn,CircOut;

static void (interrupt far *OldAsyncInt)();

static void interrupt far AsyncInt(void);

void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud,

unsigned char Data, unsigned char Stop, unsigned char Parity)

{

unsigned char High,Low;

int f;

comportaddr=ComPortAddr;

intvectnum=IntVectNum;

CharsInBuf=0;CircIn=0;CircOut=0;

f=(Baud/100);

f=1152/f; High=f/256;

Low=f-High*256;

outp(ComPortAddr+3,0x80);

outp(ComPortAddr,Low);

outp(ComPortAddr+1,High);

Data=(Data-5)|((Stop-1)*4);

if(Parity==2) Data=Data|0x18;

else if(Parity==1) Data=Data|0x8;

outp(ComPortAddr+3,Data);

outp(ComPortAddr+4,0x0a);

outp(ComPortAddr+1,0x01);

disable();

OldAsyncInt=getvect( IntVectNum );

setvect( IntVectNum, AsyncInt );

enable();

maskb=inp(Port8259+1);

if(IntVectNum==0x0c)outp(Port8259+1,maskb&0xef); else outp(Port8259+1,maskb&0xf7);

}

static void interrupt far AsyncInt(void)

{

disable();

if(CharsInBuf

Buffer[CircIn]=inp(comportaddr);

if(CircIn

else CircIn=0;

if(CircIn==CircOut) CircOut++;

else CharsInBuf++;

enable();

outp(Port8259,EofInt);

}

void Restore(void)

{

setvect(intvectnum,OldAsyncInt);

outp(Port8259+1,maskb);

}

int GetCharInBuf(unsigned char *Char)

{

int Flag;

Flag=-1;

if(CharsInBuf>0)

{

(*Char)=Buffer[CircOut];

if(CircOut

else CircOut=0;

CharsInBuf--;

Flag=0;

}

return Flag;

}

int SendChar(unsigned char Char)

{

if((inp(comportaddr+5)&0x20)==0) return -1; outp(comportaddr,Char);

return 0;

}

main()

{

int i,c;

unsigned char InChar;

Init_COM(COM232,COMINT,1200,8,1,0); while(1)

{

if(kbhit())

{if((InChar=getch())==27)break;

else while(SendChar(InChar));

}

if(GetCharInBuf(&InChar)==0)

printf("%c",InChar);

}

Restore();

}

接收程序:

#include

#include

#include

#include

#include

#include

#define RXD 0 //接收

#define TXD 0 //发送

相关文档
最新文档