《接口与通信》+《Visual C++串口通信技术与工程实践(2nd)》笔记

本文介绍了在Windows系统中使用C++进行串口通信的方法,包括通过CreateFile打开串口、DCB结构体初始化串口参数、设置缓冲区大小、超时设置以及读写操作。同时提到了DOS时期的INT 21H和INT 14H调用,并对比了Windows API的使用,强调了Windows的消息驱动和设备管理特性。
摘要由CSDN通过智能技术生成

部分引用 http://www.vckbase.com/document/viewdoc/?id=1734

《接口与通信》这本书,虽然说的比较久,都是IBM和Intel古老的IC技术,但是有些还是通用的。我们通过了解这些IC可以知道一台电脑是怎么样进行软件编程和硬件结合。

其中有个Intel的8250异步串口 。其中的管脚。我就不说了。但是我们可以像编写汇编一样控制他。

例如  : BIOS分配了IC8250的地址是3F8H-3FFH(COM1)的话。

     MOV   AL,80H  

     MOV   DX,3FBH

     OUT   DX, AL   ;给控制位最高位写上1 ,这个1的作用就是确定化吧。因为这个位置的值是不定的。要是0的话寻址就不对了。

     MOV   AL,

     MOW  DX,3F8H

     OUT   DX,AL

     这样我们就可以控制这个芯片(IC)来接收波特的属性。例如,你要接收的是多少频率。多少位的。打开哪个口来接收都可以控制。

   但是通过C++编程是怎么得到的呢?

  在DOS的系统接口中。DOS INT 21H 的03H和04H 号的功能 就是调用 异步串口通信的接收和发送功能, 而BIOS INT 14H 有4组 功能调用为串口通信服务的。正是因为如此在DOS中采用寄存器直接读写,BIOS调用,通信中断程序等方法可以比较容易地实现串口通信。但是在Windows中由于 Windows采用消息驱动设备统一管理 ,以及利用消息队列进行程序控制 。所以DOS下的方法都不宜采用。在Windows中为实现串口通信,Windows的SDK提供了完备的API函数和以中断方式驱动的通信驱动程序。使编程变得较为容易,

Windows提供的标准通信API函数 有很多。一般来说要实现串口通信。在32位模式下有以下4中方法:

 1. 应用CreateFile方式打开串口

  根据直译你会以为是打开文件的。其实非也。

   API函数CreateFile()定义如下:

 

<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值