一个串口通信的c语言函数 串口通信用到的函数库

单片机串口232通信c语言我写的串口通信代码比较长,给几个关键函数你吧,可实现PC与单片机的双工通信
/*串口通讯单片机晶振:11.0592MHz
T1工作于方式2 波特率=2^smod*fosc/32/12/(256-X)*/
#includecommon.h
void do_uart(void); //串口接收执字符时的操作
/*串口发送字符串 */
void sendstr(uchar *p)
{
while(*p!='\0')
{ SBUF=*p;//待发送的数据写入缓冲区
while(!TI);//等待发送完成
TI=0;//清零发送标志位
p++;//指针加1
cnt_s++; //发送计数
}
}
/*串口接收中断函数*/
void int_rec(void) interrupt 4 using 2
{
if(RI)//查询接收标志位(有数据发送过来时置为1)
{
RI= 0;//接收标志位清零
// sendchar(SBUF);//让从电脑上传到单片机的数据,传回的电脑显示
do_uart();//对接受到得字符操作
}
}
/*串口初始化*/
void com_init(uint baud)
{
SCON = 0x50;//串口工作方式为1,串行允许接受
TMOD = 0x21;//定时器1工作在方式2定时器0工作在方式1
//PCON = 0x80;//SMOD = 1; 波特率加倍
TH1=256-fosc/32/12/baud;
TL1=TH1;
ES= 1;//开串口中断
TR1= 1;//允许定时器1工作
EA= 1;//开总中断
}
void sendchar(uchar uart_dat) //串口发送字符函数
{
SBUF = uart_dat;//待发送的数据写入缓冲区
while(!TI);//等待发送完成
TI = 0;//清零发送标志位
cnt_s++; //发送计数
}
c语言怎么实现串口通信编程原理
程序1为查询通信方式接口程序一个串口通信的c语言函数 , 为一典型的数据采集例程 。其中bioscom()函数初始化COM1(此函数实际调用BIOS
INT
14H中断0号功能) 。这样在程序中就避免一个串口通信的c语言函数了具体设置波特率因子等繁琐工作,只需直接访问发送/接收寄存器(3F8H)和线路状态寄存
VS或者VC6.0编写的C语言程序,怎样能够实现串口数据的收发?1、WindowsAPI通信函数方法。与通信有关的WindowsAPI函数共有26个,但主要有关的有: CreateFile()用“comn”(n为串口号)作为文件名就可以打开串口 。ReadFile()读串口 。
2、WriteFile()写串口 。CloseHandle()关闭串口句柄 。初始化时应注意CreateFile()函数中串口共享方式应设为0,串口为不可共享设备,其它与一般文件读写类似 。以下给出API实现的源代码 。
3、利用端口函数直接操作。这种方式主要是采用两个端口函数_inp(),_outp()实现对串口的读写 , 其中读端口函数的原型为: int_inp(unsignedshotport)。该函数从端口读取一个字节,端口号为0~65535 。写端口的函数原型为: nt_outp(unsignedshotport,intdatabyte)。
4、MSComm控件。MSComm控件是微软开发的专用通信控件,封装了串口的所有功能,使用很方便 , 但在实际应用中要小心对其属性进行配置 。下面详细说明该类应用方法 。
串行端口的本质功能是作为CPU和串行设备间的编码转换器 。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位 。在接收数据时,串行的位被转换为字节数据 。
在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分 。
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口) , 通信完成后必须释放资源(关闭串口) 。
求C++ C语言大神帮忙弄一个串口通信的代码这是我以前写的一个串口通讯文件,全部贴出来了,希望对你有帮助,包括设置,发送,接受数据,你可以好好看看,祝你成功
// 串口Dlg.cpp : 实现文件
//
#include "stdafx.h"

推荐阅读