如何打开串口设备?

benz040   2007-7-19 14:39 楼主
我在PC104下做一个串口的调试程序,这个程序是从PC上移植过来的。我创建平台时添加了Serial Port Support 选项,首先请问是不是加了Serial Port Support就可以使用串口了那?如果是我打不开设备那?如果不是需要添加那些支持那?那位有CE下串口的例子那发一份看看好吗?谢谢!

回复评论 (6)

BOOL CSincoSecond::OpenComm(const TCHAR* pPort)
{
        DCB dcb;                // 串口控制块
        COMMTIMEOUTS timeouts = {        // 串口超时控制参数
                100,                                        // 读字符间隔超时时间: 100 ms
                1,                                        // 读操作时每字符的时间: 1 ms (n个字符总共为n ms)
                500,                                // 基本的(额外的)读超时时间: 500 ms
                1,                                        // 写操作时每字符的时间: 1 ms (n个字符总共为n ms)
                100
        };                                // 基本的(额外的)写超时时间: 100 ms
               
        hComm = CreateFile(pPort,        // 串口名称或设备路径
                GENERIC_READ | GENERIC_WRITE,        // 读写方式
                0,                                // 共享方式:独占
                NULL,                        // 默认的安全描述符
                OPEN_EXISTING,        // 创建方式
                0,                                // 不需设置文件属性
                NULL);                        // 不需参照模板文件
               
        if(hComm == INVALID_HANDLE_VALUE) return FALSE;                // 打开串口失败
               
        GetCommState(hComm, &dcb);                // 取DCB
               
        dcb.BaudRate = 115200;
        dcb.ByteSize = 8;
        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT;
               
        SetCommState(hComm, &dcb);                // 设置DCB
               
        SetupComm(hComm, 4096, 4096);        // 设置输入输出缓冲区大小
               
        SetCommTimeouts(hComm, &timeouts);        // 设置超时

        ::AfxBeginThread(GetCommData, NULL);//启动串口读线程
        ::AfxBeginThread(SendDataThrd, NULL);//启动发送数据线程
点赞  2007-7-23 16:23
楼上正解
点赞  2007-7-23 17:27
我有串口通讯的例子,写过多种语言的串口调试助手,找我!!QQ:619121698
点赞  2008-7-16 18:26
在CE下,打开串口要想1楼那样,不要用MSComm控件,不知道你用那种方法打开串口,如果问题还没解决,就把代码贴出来,让大家帮你解决
点赞  2008-7-18 08:26
CE下用不了MSCOMM控件,只能用READFILE,WIRTEFILE这样的API操作.
点赞  2008-7-18 09:00
CreateFile(TEXT("COM1:"),...
点赞  2008-7-18 09:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复