在当今,流行的编程软件种类繁多,它们编程方便、易于维护,但是在与硬

件直接打交道和编制系统软件时却束手无策,于是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); /*发送文件名*/

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(int argc,char *argv[])

{

if(argc

以上程序可传送各种格式的文件,也有一定的自动纠错能力,但对于异常情况的

处理能力比较弱,读者可以自己改进。由于篇幅限制,对于中断14H的功能、入

口参数及返回参数的意义请读者自己查有关资料。

**********************************

附录:

现在大多数串行口都遵循RS-232标准,以下是最常用的RS-232信号:

名称 针号 含义

RTS 4  Request to send(请求发送)

CTS 5  Clear to send(清除发送)

DSR 6  Data set ready(数据设备准备好)

DTR 20  Data terminal ready(数据终端准备好)

TXD 2  Transmit data(发送数据)

RXD 3  Receive data(接收数据)

GRD 7  Ground(接地)

c语言 465串口编程,用C语言编写串口程序相关推荐

  1. c语言编程 遍历字符串,请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如123456789......

    导航:网站首页 > 请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如123456789... 请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如 ...

  2. c语言odbc编程,c语言之odbc编程指南c语言之odbc编程指南.doc

    c语言之odbc编程指南c语言之odbc编程指南 ?摘要本文在介绍了ODBC(开放性数据库连接,Open? DataBase? Connectivity)运行机制的基础上,着重讨论了VisualC++ ...

  3. c语言用for编程图形,C语言编程题求解

    2009-05-13 C语言简单的编程题求解1.从键盘输入一 //将四个函数编成四个子函数了,在一个主函数里调用,你若需要,分别取出来用也可以.以下源代码,VS2005编译通过. //1.从键盘输入一 ...

  4. c语言省二级编程证书,c语言二级考试

    c语言二级考试[编辑] 概述 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.全国计算机等级考试有二级c语言这个考试的项目. C语言考试要求 1. 熟悉Visual C+ ...

  5. c语言嵌入式系统编程软件,C语言嵌入式系统编程软件设计研究论文

    C语言嵌入式系统编程软件设计研究论文 摘要:近年来,C语言编程在嵌入式系统越来越受到广大技术人员的青睐.介绍了C语言系统软件的编程思路,阐述了嵌入式系统编程软件架构的基本知识,包括模块划分.分层架构. ...

  6. c语言12之编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。

    题目: 设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除. 源代码: #include<stdio.h> ...

  7. python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...

    一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...

  8. 【linux】串口编程(一)——配置串口

    目前遇到的串口编程都是用于通信,很少作为终端显示.以前没有对串口编程做深入研究,本次以libmodbus源码中对串口的设置为例,详解总结串口编程时配置的属性(struct termios) 以libm ...

  9. UART0串口编程(六):串口(UART0)之UC/OS(二)UC/OS下的串口接收任务编程

    串口(UART0)之UC/OS(二) 一.串口接收数据在UC/OS设计中应注意的问题 1.    串口通信的数据接收过程: 1>  UART 接收FIFO接收到预定字节后触发中断 2>   ...

  10. UART0串口编程(五):串口编程(UART0)之UC/OS(一)UC/OS下的串口发送任务编程

    UART0串口编程(五) 串口编程(UART0)之UC/OS(一) 一.在UC/OS中设计串口程序所要考虑的问题 1.     串口通信数据以帧为单位进行处理,如果需要接收大量数据,则帧缓冲区规模必然 ...

最新文章

  1. 华为交换机配置基本命令
  2. 容我喝一杯 java_花一杯茶的时间,学会Java反射(实用篇)
  3. 【报错信息】Google Play 上架报错 ( Your app contains ads that do not comply with our Families ad | 退出亲子同乐计划 )
  4. 我是如何提高工作和研究效率的?分享给大家几个神器
  5. iOS : 静态库(.framework)合并
  6. How to install OpenERP 6 on Ubuntu 10.04 LTS Server--1
  7. 50行代码实现3D模拟真实撒金币动效
  8. DIV+CSS网页设计布局应用详解视频教程
  9. ai 文案_AI是UX文案的未来吗?
  10. php buildconf,PHP Extension开发 Unix Build System配置 conf
  11. K60学习笔记一:PORT端口
  12. JavaScript之浏览器大战
  13. 密码学工具箱ToolsFx发布日志
  14. 8年码龄的技术总监,去上市公司面试,结果凉了!
  15. 搭建亿万级别短信服务发送平台
  16. MOS在锂电池的核心原理
  17. 【Typora启动报错】This beta version of Typora is expired, please download and install a newer version.
  18. android开发面试问题,这个回答让我错失offer!好文推荐
  19. Deepgreen/Greenplum 删除节点步骤
  20. python的应用领域有哪些、选择题_Python测试题(题)

热门文章

  1. Ubuntu16.10上安装NodeJS6.9.2
  2. gradle相关配置内容解析
  3. AJAX实例演示加载xml
  4. 按键显示按键编码 keycode
  5. cocos2d-x学习(一) HelloWorld
  6. UNIX系统编程小结(三)----进程相关
  7. ASP.NET中实现模版的动态加载(转)
  8. Leap Motion 上手体验
  9. 在iOS App中增加完整的照片多选功能
  10. asp.net应用程序级别跟踪