
正文
windows串口编程,windows c 串口编程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
MFC串口通信程序(基于Vc++及Serialport类)
在开始--运行输入cmd,调出‘命令提示符’窗口,然后再执行regsvr32命令。要为mscomm3ocx,请在 MS-DOS提示符处键入以下命令:c:\regsvr32 mscomm3ocx ,表示在C盘注册mscomm3ocx。注册成功后会有一个提示框。
bool CTSholding=false;if(mscomm.GetCommEvent()==3){ if(CTSholding = false) CTSholding = true;else CTSholding = false;} 这样就可以用CTSholding的值来判断CTS引脚电平的高低了。
MFC的COM控件,你需要做的就是在你自己的电脑上搜索到这个文件:MSCOMM3OCX 找到之后复制到另一台机器的c:/windows/system32下,然后运行regsvr32 mscomm3ocx 命令,就可以了。
这样一般就可以了。应该是你的程序有等待读取或写入串口的线程没有结束,所以没有正确关闭串口。
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
相关问答
Q1: 怎样在WINDOWS下用C语言编写串口接收数据程序
、Windows API通信函数方法 。与通信有关的Windows API函数共有26个,但主要有关的有: CreateFile() 用 “comn”(n为串口号)作为文件名就可以打开串口。 ReadFile() 读串口。
如果REN=1,它会自动检测RXD,当它收齐了一帧数据,就自动将数据放到(接收)SBUF,然后在RI置一。 CPU的中断系统,如果已经开放了串口中断,CPU就会自动转到0023H去执行程序。
大概说下思路,串口在编程里相当于一个文件,因此要创建句柄来操作,还要给DCB结构休赋值进行串口配置等,你可以查下DCB结构体,记得在DOS下编程时,使用#include windows.h。藏的深是为了更简单的使用。
SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。
串口通讯,首先设置波特率,再设置串口模式,之后就可以收发数据了。
Q2: windows下C语言怎么对串口进行读写操作?
、Windows API通信函数方法 。与通信有关的Windows API函数共有26个,但主要有关的有: CreateFile() 用 “comn”(n为串口号)作为文件名就可以打开串口。 ReadFile() 读串口。
Windows下的语言读取串口的数据,可以通过USB的一些特定连接。
串口也是文件。可以用自己用API封装一个串口类,网上也有做好的可以下载。
(1) 打开串口(2) 配置串口(3) 读写串口(4) 关闭串口(1) 打开串口 Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。
Q3: 有关windows下串口编程的问题,波特率较高
电脑的串口的波特率也是有上限的,不是你想要多少都行的,这是要受硬件限制的,对于异步串行通信,波特率能达到256000已经是最大限定了,通常的电脑只支持到128000。
右键点击串口:找到要设置波特率的串口,在其上右键单击,然后选择“属性”。 选择“端口设置”:在弹出的窗口中,选择“端口设置”选项卡。
如果你的晶振是10592Mhz的话。也慢不到哪里去,普通需求还是可以满足的。但是他的优势体现在你使用UART串口的时候,很多波特率可以选择。所以就很nice。
我有更好的答案推荐于2017-12-16 10:05:04 最佳答案 原因很多,最常见的是:干扰、接地不好或不对、以及双方定时不一致(例如晶振不准)等等。
波率有一定的容差性能,不同波特率允许的误差也不一样。一般应尽可能的减小误差。110和100的误差近10%了,显然是不能正常收发的。
windows串口编程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于windows c 串口编程、windows串口编程的信息别忘了在本站进行查找喔。







