
串口有几种
有什么区别
简称串口,也就是COM接口采用通信协议的扩展接串口的出现是在1980年前后,数据传输115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备,目前部分新主板已开始取消该接口。
并行接口 在早期的PC系统中串口的物理连接方式有9针和25针两种方式,通过额外的子卡挡板与电脑连接。
随着PC技术的发展,25针的串口逐渐被淘汰,目前串口都采用9针的连接方式直接集成在主板上。
一般的PC主板都提供两个串口。
标准的串口能够达到最高115Kbps的数据传输速度,而一些增强型串口如ESP(Enhanced Serial Port,增强型串口) 、Super ESP(Super Enhanced Serial Port,超级增强型串口)等则能达到460Kbps的数据传输速率。
虽然主板一般都集成两个串口,可Windows却最多可提供8个串口资源供硬件设置使用(编号COM1到COM8),虽然其I\\\/O地址不相同,但是总共只占据两个IRQ(1、3、5、7共享IRQ4,2、4、6、8共享IRQ3),平常我们常用的是COM1~COM4这四个端口。
我们经常在使用中遇到这个问题——如果在COM1上安装了串口鼠标或其他外设,就不能在COM3上安装如Modem之类的其它硬件,这就是因为IRQ设置冲突而无法工作。
这时玩家们可以将另外的外设安装在COM2或4。
为什么我的电脑的串口硬盘装不上 windows7系统
不是你机子的配置问题哈,最大可能是你下载的GHO文件出错了,或者你的并口硬盘分区太小(起码系统区要有10G),建议你重新到其他地方下载或下载直接安装版试试。
windows PC 串口控制台
楼主好,我已经解决这个问题了。
你需要先将开发板用串口和电脑连接,然后打开超级终端,设置好,再给开发板上电源,此时就会出现打印信息。
注意在超级终端设置好以前不要给开发板上电。
我的毕业设计也是这个东西,有什么问题希望多交流。
中标麒麟如何查询串口
Windows 8 U盘 步骤一:备份你的文件,如有必要,备份系统映像为新系统准备好独立分区 如果您只是想体验一下Win8系统,那么安装双系统就是一个不错的方法,换句话说,就是将新系统安装在独立的分区中。
安装系统之前我们需要将本地硬盘重新分区,从而得到安装系统需要的 独立空间。
硬盘分区有很多种方法,可以使用一些硬盘管理软件来实现,但如果你是Windows 7系统用户,就可以比较简单的来操作硬盘分区,而不必其他软件。
注:如果您只装新系统,不保留现有系统的话,这一段内容可以跳过。
首先,鼠标右键点击计算机,然后选择管理,这样会进入计算机管理这个界面。
Windows 7系统中的管理应用已经相当智能化也高级化,各个系统级操作都能较好的运行。
接下来,在计算机管理界面中点击进入磁盘管理,之后我们就能看到整个硬盘分区的详细情况。
接着我们要为新系统腾出一些硬盘空间,如果已经有空闲分区就可以省去下面的步骤。
选择一个空闲容量较多的分区,右键点击选择压缩卷,然后输入所需的容量大小,推荐容量选择 20GB以上,及大于20480MB的硬盘空间。
(注意:尽量不要选择系统分区)压缩卷后会在原有分区边上形成一个新分区,接下来对这个分区进行格式化。
右键新分区选择新建简单卷,在分配驱动号和路径步骤中选择自己想要的驱动号(比如 E 盘),然后一直下一步即可经过这一系列的步骤之后,专为新系统安装的分区就准备好了。
接下来我们就可以将Windows 8操作系统安装进这个硬盘分区中,这样一来就不会覆盖原有的系统,又能体验到新系统的乐趣,且方便用户删除。
步骤二:用软件将镜像写入到U盘中,在使用U盘安装Windows 8系统之前,我们需要准备好一些工具来制作系统安装盘。
首先是要准备容量为4GB以上的U盘(4GB即可),然后是Windows 8系统的镜像文件,其次就是可用的刻录软件,在此我们使用UltraISO这款刻录软件对系统进行刻录。
首先我们打开UltraISO这款软件,然后点击文件——打开——选择Windows 8系统镜像文件,确认打开后就能在软件界面内看到整个镜像的全部文件信息。
确认文件无误之后,继续我们的安装步骤。
接下来开始制作系统安装盘,点击启动——写入硬盘映像。
进入刻录界面后,在硬盘驱动器部分选择可写入的U盘盘符,确认无误后点击写入,等待一段时间即可经过十分钟左右的等待之后,整个安装文件就会保存在U盘中,接下来我们就可以利用这个U盘来安装Windows 8操作系统了。
实际上U盘系统与光盘系统相类似,只不过使用的物理介质不同,写入速度也有所不同。
针对像超极本这类没有光驱配备的笔记本,U盘安装操作系统的价值得到了很好的体现。
最后就是U盘安装Windows 8操作系统的首要步骤,打开电脑电源,在进入系统引导之前点击键盘“F12键”(不同型号电脑按键也不同,有些是“F11”、“F1”之类)进入启动管理器,然后选择装有系统文件的U盘,点击进入操作系统安装界面。
步骤三:系统安装,注意选对分区,一切工作准备就绪,接下来就到了激动人心的时刻,我们来安装Windows 8操作系统吧。
Windows 8系统的安装界面与Windows 7系统的界面相似,而按照微软官方的说法,Windows 7 可以直接升级至Windows 8系统,但我不推荐用户直接升级,使用双系统操作比较安全。
Windows 8提供了简体中文,所以在最开始的部分我们选择默认无语即可(简体中文),然后点击下一步准备安装系统。
阅读许可条款后,勾选“我接受许可条款”再点击下一步。
接下来我们会看到两个系统安装模式,第一是升级系统,第二是自定义安装。
我们可以根据自身情况来选择安装,在这里我们要安装双系统,所以选择第二项自定义来继续安装流程。
进入自定义安装模式后,我们会看到硬盘分区列表,选择先前准备好的新分区来安装系统。
(如果是要重新安装系统,就选择原有系统的分区,点击驱动器选项——格式化,待格式化完成后选择分区,下一步继续安装。
)紧接着我们将迎来安装画面,系统正在安装且需要等待一段时间,根据不同的安装方式(U盘、硬盘或光驱)写入速度有所不同。
安装完成后,系统将自动重启。
选择进入Windows 8系统以进行最后的安装,之后一个全新的操作界面将展现在我们面前。
操作系统注重体验,全新Windows 8系统为用户带来不同以往的交互界面,系统应用更加简单明了,操作易上手。
小结小结小结小结 至此,用U盘安装Windows 8双系统的工作就全部完成了,对于熟练的网友来说,从硬盘分区到U盘写入、再到系统安装,整个过程耗时也就30分钟左右。
通过以上三个步骤,绝大多数初学者都可以轻松完成Windows 8系统的安装,而且不会对现有系统造成任何影响。
如果有一天你想删除Windows 8,方法也很简单,只要先取消双系统启动菜单,再格式化独立分区即可。
如何用API函数实现WINDOWS下的串口写程
用API函数实现Windows下的串行通讯冯华亮 2002年4月 四川·电子科大以往的DOS系统是通过DOS中断和BIOS中断向用户提供串行接口的通讯能力。
在Windows环境下,C++的开发工具既没有提供象DOS和BIOS中那样专门的串行通讯控制方法,也不允许用户直接控制串口的中断。
为了保证资源共享,Windows系统完全接管了各种硬件资源,使用中断来控制端口将破坏系统的多任务性,使系统的稳定性受到影响。
但Windows同时也提供了功能强大的API函数使用户能间接的控制串行通讯。
1、实现串行通讯的相关API函数API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。
常用函数及作用如表5-1所示。
表5-1 常用串行通讯API函数及其作用函数名 作用CreateFile 打开串口GetCommState 检测串口设置SetCommState 设置串口BuilderCommDCB 用字符串中的值来填充设备控制块GetCommTimeouts 检测通信超时设置SetCommTimeouts 设置通信超时参数SetCommMask 设定被监控事件WaitCommEvent 等待被监控事件发生WaitForMultipleObjects 等待多个被监测对象的结果WriteFile 发送数据ReadFile 接收数据GetOverlappedResult 返回最后重叠(异步)操作结果PurgeComm 清空串口缓冲区,退出所有相关操作ClearCommError 更新串口状态结构体,并清除所有串口硬件错误CloseHandle 关闭串行口2、打开串口函数CreateFile原本用于打开文件,但它同样可用于打开一个通信端口。
与系统中其他对象一样,通信端口也是用句柄来标识的。
CreateFile函数返回被操作的通信端口句柄,其调用方法如下:HANDLE CreateFile (LPCTSTR lpFileName, \\\/\\\/指向文件名字符串的指针DWORD dwDesireAccess, \\\/\\\/操作模式DWORD dwShareMode, \\\/\\\/共享方式LPSECURITY_ATTRIBUTES lpSecurityAttributes, \\\/\\\/指向安全属性的指针DWORD dwCreationDistribution, \\\/\\\/文件建立方式DWORD dwFlagsAndAttributes \\\/\\\/文件属性HANDLE hTemplateFile \\\/\\\/模板文件句柄)lpFileName:指向一个以NULL结束的字符串,该串指定了要创建、打开或截断的文件、管道、通信源、磁盘设备或控制台的名字。
当用CreateFile打开串口时,这个参数可用“COM1”指定串口1,用“COM2”指定串口2,依此类推。
dwDesireAccess: 指定对文件访问的类型,该参数可以为GENERIC_READ(指定对该文件的读访问权)或ENERIC_WRITE(指定该文件的写访问权)两个值之一或同时为为这两个值。
用ENERIC_READ|GENERIC_WRITE则指定可对串口进行读写;dwShareMode:指定此文件可以怎样被共享。
因为串行口不支持任何共享模式,所以dwShareMode必须设为0;lpSecurityAttributes定义安全属性,一般不用,可设为NULL。
Win 9x下该参数被忽略;dwCreationDistribution定义文件创建方式, 对串口必须设为OPEN_EXISTING,表示打开已经存在的文件;dwFlagsAndAttributes为该文件指定定义文件属性和标志,这个程序中设为FILE_FLAG_OVERLAPPED,表示异步通信方式;hTemplateFile 指向一个模板文件的句柄,串口无模板可言,设为NULL。
在 Windows 9x下该参数必须为NULL。
用异步读写方式打开串口1的函数调用如下:m_hComm = CreateFile(“COM1”, \\\/\\\/打开串口1GENERIC_READ | GENERIC_WRITE, \\\/\\\/读写方式0, \\\/\\\/不能共享NULL, \\\/\\\/不用安全结构OPEN_EXISTING, \\\/\\\/打开已存在的设备FILE_FLAG_OVERLAPPED, \\\/\\\/异步方式0); \\\/\\\/无模板串口被成功打开时,返回其句柄,否则返回INVALID_HANDLE_VALUE(0XFFFFFFFF)。
3、串口设置第一次打开串口时,串口设置为系统默认值,函数GetCommState和SetCommState可用于检索和设定端口设置的DCB(设备控制块)结构,该结构中BaudRate、ByteSize、StopBits和Parity字段含有串口波特率、数据位数、停止位和奇偶校验控制等信息。
程序中可先用GetCommState检索端口的当前设置,修改其中的部分字段后再用SetCommState进行端口设定。
这样可不必构造一个完整的DCB结构。
下面介绍几个主要的函数和结构体:(1)GetCommStateBOOL GetCommState( hCommDev, lpdcb);参数hCommDev标识通信设备,应使用CreateFile返回的句柄。
Lpdcb是指向DCB结构的指针,函数调用后当前串口配置信息将被保存在这个结构内。
如果函数成功返回值为TRUE;否则返回值为FALSE。
SetCommState用法与GetCommState相似,在此不再重复。
DCB结构定义如下(只介绍主要的几项):typedef struct _ DCB{……DWORD BardRate; \\\/\\\/波特率的设置BYTE ByteSize; \\\/\\\/数据位的个数BYTE Parity; \\\/\\\/是否有奇偶校验位BYTE StopBits; \\\/\\\/停止位的个数……}DCB;(2)SetCommTimeoutsBOOL SetCommTimeouts( hCommDev, lpctmo );Lpctmo指向包含新的超时参数的COMMTIMEOUTS结构。
COMMTIMEOUTS结构定义如下:typedef struct _ COMMTIMEOUTS{DWORD ReadIntervalTimeout;DWORD ReadTotalTimeoutMultiplier;DWORD ReadTotalTimeoutconstant;DWORD WriteTotalTimeoutMultiplier;DWORD WriteTotalTimeoutconstant;}COMMTIMEOUTS, LPCOMMTIMEOUTS;ReadIntervalTimeout: 以毫秒为单位指定通信线上两个字符到达之间的最大时间。
在ReadFile操作其间,收到第一个字符时开始计算时间。
若任意两个字符到达之间的间隔超过这个最大值,ReadFile操作完成,返回缓冲数据。
0值表示不用间隔限时。
若该成员为MAXDWORD,且ReadTotalTimeoutconstant和ReadTotalTimeoutMultiplier成员为零,则指出读操作要立即返回已接收到的字符,即使未收到字符,读操作也要返回。
ReadTotalTimeoutMultiplier:以毫秒为单位指定一个乘数,该乘数用来计算读操作的总限时时间。
每个读操作的总限时时间等于读操作所需的字节数与该值的乘积。
ReadTotalTimeoutConstant:以毫秒为单位指定一个常数,用于计算读操作的总限时时间。
每个操作的总限时时间等于ReadTotalTimeoutMultiplier成员乘以读操作所需字节数再加上该值的和。
ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant成员的值为0表示读操作不使用限时时间。
WriteTotalTimeoutMultiplier和WriteTotalTimeoutconstant的意义和作用分别与ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant相似,不再重复。
(3)BuilderCommDCBBOOL BuilderCommDCB(lpszDef,lpdcb)这个函数按lpszDef字符串所指定的格式来配置串口的DCB。
LpszDef:指向一个以NULL结束的字符串,该字符串指定串口的控制信息。
比如,“1200,N,8,1”指定波特率为1200,无奇偶校验位,有8个数据位和1个停止位。
lpdcb:指向被填充的DCB结构。
(4)SetCommMaskBOOL SetCommMask(hCommDev,fdwEvtMask);fdwEvtMask指向一个32位的屏蔽码,如果指定为EV_RXCHAR | EV_CTS,表示程序监控串口的收、发事件。
下面以简单的例子说明串口设置的步骤:m_CommTimeouts.ReadIntervalTimeout = 1000;m_CommTimeouts.ReadTotalTimeoutMultiplier = 1000;m_CommTimeouts.ReadTotalTimeoutConstant = 1000;m_CommTimeouts.WriteTotalTimeoutMultiplier = 1000;m_CommTimeouts.WriteTotalTimeoutConstant = 1000;if (SetCommTimeouts(m_hComm, &m_CommTimeouts))\\\/\\\/ 串口超时参数设置if (SetCommMask(m_hComm, dwCommEvents))\\\/\\\/ 设置串口事件掩码if (GetCommState(m_hComm, &m_dcb))\\\/\\\/ 获取串口当前状态if (BuildCommDCB(“1200,N,8,1”, &m_dcb))\\\/\\\/ 建立串口设备控制块if (SetCommState(m_hComm, &m_dcb));\\\/\\\/ 设置串口参数……以上任何一个if语句的判断条件为假时都将调用GetLastError函数获取错误信息,进行错误处理。
4、读写串口数据



