关闭C中的串行端口

时间:2018-08-03 03:25:36

标签: c embed

windows 7 我已经在C中建立了一个项目来制作dll,可以在python编写的大型程序中使用。

static HANDLE hCom = INVALID_HANDLE_VALUE;


unsigned int g_dldtool_exit_code = 0;//can not be written by other threads.



hCom = CreateFile( commPort,
                   GENERIC_READ | GENERIC_WRITE,
                   0,    // must be opened with exclusive-access
                   NULL, // default security attributes
                   OPEN_EXISTING, // must use OPEN_EXISTING
                   FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,    // overlapped I/O
                   NULL  // hTemplate must be NULL for comm devices
                 );




if (hCom == INVALID_HANDLE_VALUE) {
// Handle the error.
    TRACE ("CreateFile failed with error %d", GetLastError());
    g_dldtool_exit_code = 1;
    goto _exit;
}



if (hCom != INVALID_HANDLE_VALUE) {
    unconfig_serial_port();

    fSuccess = CloseHandle(hCom);

我用过

if (hCom != INVALID_HANDLE_VALUE) {
    unconfig_serial_port();

    fSuccess = CloseHandle(hCom);

关闭串行端口,但是每次程序进入此处时if条件都无法满足,因此无法关闭串行端口。 当我注释if条件时,会发生错误:ERROR showed when building dll

如何关闭 串口?

完整代码可在此处下载: https://www.dropbox.com/s/kk2sc3r6pmmh7tt/download_main.c?dl=0

1 个答案:

答案 0 :(得分:1)

您报告的错误似乎是由于语法问题引起的。 也许当您注释掉“ if”语句时,您删除了方括号“ {”,但没有删除方括号“}”。 关于为什么代码不满足if语句条件,很难从那些代码中说出来。