⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d041.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
1)函数声明:
    HANDLE CreateFile f
    LPCTSTR lpFileName,    //文件名“COM1”、“COM2"等
    DWORD dwDesiredAccess,    /,访问模式读写或同时读写
    DWORD dwShareMode,    //共享模式,常为0
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,/,通常为NULL
    DWORD dwCreationDistribution,//iIJ建方式:OPEN EXISTING
    DWORD dwFlagsAndAttributes,    /,文件属性和标志
    HANDLE hTemplateFile    //ir~6时文件句柄,常为NULL
    );
    2)功能:在Win32操作系统中,文件是一个广泛的概念,包含文件、通信设备、命名
管道、邮件槽、磁盘、控制台等,这些都是用CreateFile函数来打开或创建的。
    3)返回值:CreateFile函数调用成功后,返回值是一个文件句柄(long),在Windows API
中调用任何通信例程时都使用该值,它与MSComm控件中的CommID属性值是等同的;若
不成功,则返回错误信息INVALID_HANDLE_VELUE.同时设置GetLastError。即使函数成
功,但若文件不存在,且指定了CREATE_ALWAYS或OPEN一ALWAYS,GetLastError也会
设为ERROR_ALREADY_EXSTS。具体参数说明请查阅MSDN。
    重叠(OVERLAPPED) I/O操作,就是异步操作或非阻塞操作,即在执行一项操作时,
若系统有别的操作请求,可以立即返回执行其他任务,这样程序就不会类似“死机”一样停
在那里。而NonOverLapped(同步)方式则正好相反,因程序原因应该在于同步方式下如果
有一个通信API函数在操作中,另一个会阻塞(等待)直到上一个操作完成,所以当读数据
的线程停留在WaitCommEven时,写操作WriteFile就停在“原地”等待。因此,如果程序
没有特殊要求,则在调用CreateFile函数打开串口时,一般将操作方式设为使用Overlapped
(异步)方式。
    综上,这里给出一个打开串口1(COMl)的程序段,一般的程序均可按此编写。
HANDLE hCom;
DWORD dwError;
hCom=CreateFile f
    ”COM1”,    ,/串口号
    GENERIC_READ I GENERIC_WRITE,  /,允许读和写
    0,    ,/独占方式NULL
    OPEN_EXISTING,  //打开而不是创建
    FILE ATTRIBUTE_NORMAL I FILE_FLAG-OVERLAPPED,胆妻叠方式
    NULL
    );
if(hCom==NVALID_HANDLE_VALUE)
{
    wError-GetLastError();,/得到错误信息
    ||...||处翼崤误
)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -