c语言 465串口编程,用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); /*发送文件名*/
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语言编写串口程序相关推荐
- c语言编程 遍历字符串,请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如123456789......
导航:网站首页 > 请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如123456789... 请教大家一个C语言面试的编程题目 C语言:循环执行让用户输入一串字符串,如 ...
- c语言odbc编程,c语言之odbc编程指南c语言之odbc编程指南.doc
c语言之odbc编程指南c语言之odbc编程指南 ?摘要本文在介绍了ODBC(开放性数据库连接,Open? DataBase? Connectivity)运行机制的基础上,着重讨论了VisualC++ ...
- c语言用for编程图形,C语言编程题求解
2009-05-13 C语言简单的编程题求解1.从键盘输入一 //将四个函数编成四个子函数了,在一个主函数里调用,你若需要,分别取出来用也可以.以下源代码,VS2005编译通过. //1.从键盘输入一 ...
- c语言省二级编程证书,c语言二级考试
c语言二级考试[编辑] 概述 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.全国计算机等级考试有二级c语言这个考试的项目. C语言考试要求 1. 熟悉Visual C+ ...
- c语言嵌入式系统编程软件,C语言嵌入式系统编程软件设计研究论文
C语言嵌入式系统编程软件设计研究论文 摘要:近年来,C语言编程在嵌入式系统越来越受到广大技术人员的青睐.介绍了C语言系统软件的编程思路,阐述了嵌入式系统编程软件架构的基本知识,包括模块划分.分层架构. ...
- c语言12之编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
题目: 设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除. 源代码: #include<stdio.h> ...
- python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...
一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...
- 【linux】串口编程(一)——配置串口
目前遇到的串口编程都是用于通信,很少作为终端显示.以前没有对串口编程做深入研究,本次以libmodbus源码中对串口的设置为例,详解总结串口编程时配置的属性(struct termios) 以libm ...
- UART0串口编程(六):串口(UART0)之UC/OS(二)UC/OS下的串口接收任务编程
串口(UART0)之UC/OS(二) 一.串口接收数据在UC/OS设计中应注意的问题 1. 串口通信的数据接收过程: 1> UART 接收FIFO接收到预定字节后触发中断 2> ...
- UART0串口编程(五):串口编程(UART0)之UC/OS(一)UC/OS下的串口发送任务编程
UART0串口编程(五) 串口编程(UART0)之UC/OS(一) 一.在UC/OS中设计串口程序所要考虑的问题 1. 串口通信数据以帧为单位进行处理,如果需要接收大量数据,则帧缓冲区规模必然 ...
最新文章
- 华为交换机配置基本命令
- 容我喝一杯 java_花一杯茶的时间,学会Java反射(实用篇)
- 【报错信息】Google Play 上架报错 ( Your app contains ads that do not comply with our Families ad | 退出亲子同乐计划 )
- 我是如何提高工作和研究效率的?分享给大家几个神器
- iOS : 静态库(.framework)合并
- How to install OpenERP 6 on Ubuntu 10.04 LTS Server--1
- 50行代码实现3D模拟真实撒金币动效
- DIV+CSS网页设计布局应用详解视频教程
- ai 文案_AI是UX文案的未来吗?
- php buildconf,PHP Extension开发 Unix Build System配置 conf
- K60学习笔记一:PORT端口
- JavaScript之浏览器大战
- 密码学工具箱ToolsFx发布日志
- 8年码龄的技术总监,去上市公司面试,结果凉了!
- 搭建亿万级别短信服务发送平台
- MOS在锂电池的核心原理
- 【Typora启动报错】This beta version of Typora is expired, please download and install a newer version.
- android开发面试问题,这个回答让我错失offer!好文推荐
- Deepgreen/Greenplum 删除节点步骤
- python的应用领域有哪些、选择题_Python测试题(题)