用C语言编写简单的接口程序
6页1、用C语言编写简单的接口程序北京理工大学(100081)张俊在通信中,为了保证运行安全可靠,标准的串行口必须具有许多握手信号和状态信息。这是因为通信的各个计算机CPU速度不一样(这会导致?错帧敚?以及发送机发送数据速度比接收机接 收速度快(这会导致?过冲敚?为解决这个问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节(低4位)的数据,而另外半个字节(高4位)则用来传送信息。我们可以对信息位(高4位)进行如下简单的编码: 0H: 发送的是新的半个字节数据1H: 重新发送上次传送错误的数据2H: 文件名结束3H: 文件结束这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就是发送机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节相比较,如果相同,就发送新的半个字节,否则就重新发送。新数据与旧数据通过信息位来区分。下面就是我用C语言编写控制串行口的程序。以一个发送文件的程序为例,介绍一下用C语言实现对接口的 控制。源 程 序 为: include “dos.h include “stdlib.h include “stdio.h define PORT
2、 0void SendFile(char fname); / 发 送 文 件 /void Send(int s); / 发 送 一 个 字 节 /void SendFileName(char fname);/ 发 送 文 件 名 /void ReceiveFile(); / 接 收 文 件 /void GetFileName(char f);/ 接 收 文 件 名 /void InitPort(int port,unsigned char para); / 初 始 化 端 口 /void SendPort(int port,char c); / 端 口 发 送 /int ReadPort(int port); / 读 端 口 字 节 /int CheckState(int port); / 检 查 端 口 状 态 /int Receive(int port,int G); / 接 收 一 个 字 节 /main(argc,argv) int argc; char argv; if(argc2) printf(“Please input R(receive) or S(sent) par
3、ametre:); exit(1); InitPort(PORT,231); if(argv1=S) / 检 查 选 择 的 有 效 性 / SendFile(argv2); else if(argv1=R) ReceiveFile(); else printf(“Error parament.Please input again.); exit(1); void SendFile(fname) char fname; FILE fp; int ch,s; if(!(fp=fopen(fname,“rb) printf(“Cant open the file.n); exit(1); SendFileName(fname); do ch=(int)getc(fp); if(ferror(fp) printf(“Error reading file.n); break; s=ch 16; / 取 文 件 中 一 个 字 节 的 低4 位 / Send(s); s=ch/16; / 取 文 件 中 一 个 字 节 的 高4 位 / Send(s); while(!feof(fp); s=4
《用C语言编写简单的接口程序》由会员壹****1分享,可在线阅读,更多相关《用C语言编写简单的接口程序》请在金锄头文库上搜索。
幼儿大班音乐活动《爷爷为我打月饼》
金融控股公司中层管理人员选拔任用管理办法模版
2023试用期转正个人总结(2篇).doc
心理学各单元习题比较全t.txt
2022电工电子实习报告_9
施工员述职报告范本参考
平原县第一学期五年级英语期末试卷2
2022年高中历史第四章北宋王安石变法章末分层突破含解析北师大版选修
表扬信的写作格式精选
2022年物业财务工作职责
江苏省扬州市江都区2012-2013学年七年级数学下学期期末考试试题 苏科版
2023暑假电子厂社会实践活动报告.doc
范例:&amp#215;&amp#215;伙伴KIS销售管理制度
口腔科收费标准实用排版
2023年重庆市九龙坡区铜罐驿镇黄金堡村社区工作人员考试模拟题及答案
王秋萍作业2线下课堂活动记录
幼儿园中班教案《饮料瓶变变变》含反思
某公司办公空间装饰改造项目施工组织设计
风偏角的计算说明
最新江苏省无锡市锡北片语文九年级下学期期中试题附答案
2022-12-02 6页
2024-03-11 9页
2022-11-23 2页
2022-09-22 13页
2023-02-01 5页
2022-11-19 20页
2023-10-02 4页
2022-09-19 5页
2023-05-04 2页
2023-01-04 37页