今天给各位分享c语言mscomm的知识,其中也会对C语言网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言编程:如何同时打开多个串口进行通信?2、VS或者VC6.0编写的C语言程序,怎样能够实现串口数据的收发?3、AT89S52单片机与PC串口通讯,将数码管上显示的时间每隔1秒发送给PC,用C语言如何写?4、VC中使用MScomm时,如何进行超时处理5、怎样用C语言做一个条形码
C语言编程:如何同时打开多个串口进行通信?
可以两个方式:
1、如果是 MSComm控件方式可以加入三个控件分别控制;在OnComm事件里面接收数据;用m_Comm.SetOutput(COleVariant(m_SendData));发送数据;
2、把 MSComm控件 打包在一个类里面,自己写初始化和发送接收函数;
VS或者VC6.0编写的C语言程序,怎样能够实现串口数据的收发?
1 、Windows API通信函数方法 。与通信有关的Windows API函数共有26个,但主要有关的有: CreateFile() 用 “comn”(n为串口号)作为文件名就可以打开串口。 ReadFile() 读串口。
2、WriteFile() 写串口。 CloseHandle() 关闭串口句柄。初始化时应注意CreateFile()函数中串口共享方式应设为0,串口为不可共享设备,其它与一般文件读写类似。以下给出API实现的源代码。
3、利用端口函数直接操作 。这种方式主要是采用两个端口函数_inp(), _outp()实现对串口的读写,其中读端口函数的原型为: int _inp(unsigned shot port) 。该函数从端口读取一个字节,端口号为0~65535。 写端口的函数原型为: nt _outp(unsigned shot port, int databyte) 。
4、 MSComm控件 。MSComm控件是微软开发的专用通信控件,封装了串口的所有功能,使用很方便,但在实际应用中要小心对其属性进行配置。下面详细说明该类应用方法。
串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。
在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。
AT89S52单片机与PC串口通讯,将数码管上显示的时间每隔1秒发送给PC,用C语言如何写?
单片机端程序1S
Send1SData()//采用中断回调函数。1S进入,相当于51系列的1S中断然后进入发送程序,那个有点啰嗦写起来,很多单片机都采用中断回调函数这样处理
{
sendforPC(data);
}
PC端,用C语言写的话,就用MFC,首先你要知道,MSCOMM,(也就是俗称的电话控件)举个不贴切的例子它就是用来控制接收和发送串口数据的相当于就是51的发送和接收寄存器操作,当然这是由微软做好的,不用你去编写了,你只需要配置好接收数据就行了对于你这个程序来说
VC中使用MScomm时,如何进行超时处理
这是我程序中的代码,已经使用了,没有问题。
在CMainFrame中添加两个成员变量,并在构造函数中初始化:
m_bPrepared = false;
m_bInitiated = false;
下面是OnComm函数和OnTimer函数:
void CMainFrame::OnComm()
{
if (!m_bInitiated) // 初始化一次,即第一次信号不接收
{
m_bInitiated = true;
m_bPrepared = true;
return;
}
if (m_msComm.GetCommEvent() == 3) // 接收到信号
{
if(m_bPrepared)
{
// 你的处理函数
Function();
m_bPrepared = false;
SetTimer(1, 500, NULL); // 延时500毫秒
}
}
}
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (nIDEvent == 1)
{
KillTimer(1);
m_bPrepared = true;
}
CFrameWnd::OnTimer(nIDEvent);
}
怎样用C语言做一个条形码
一、条形码的读取
用过键盘口式的扫条码工具的朋友就知道,它就如同在键盘上按下数字键一样,基本不需任何编程和处理。但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了。以下有一段简单的25针串口的条码读取器通讯代码。
Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 ‘设为COM3,试运行的系统而定,你可提供一个Combox让用户选择。
.PortOpen = True ‘打开通讯端口
End With
End Sub
Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive ‘当有数据传送过来时
sData = sData Trim(MSComm1.Input)
‘检索回车,通常读卡机每组数据结尾都返回一个回车作为结束符
EndPos = InStr(1, sData, Chr(13))
If EndPos = 0 Then ‘如果未结束就继续努力
Else ‘读完一组。
lblBarCode.Caption = sData ‘显示一组条形码
With lstBarCode
.AddItem Mid(sData, 1, EndPos – 1) ‘添加一组条形码到列表
End With
sData = “” ‘清空
End If
End Select
End Sub
Private Sub cmdEnd_Click()
MSComm1.PortOpen = False ‘关闭端口
End
End Sub
关于c语言mscomm和C语言网的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。