【发布时间】:2011-06-29 12:41:59
【问题描述】:
我正在编写一个涉及通过串行端口发送数据的 vxworks 任务。打开串口成功。但是当我尝试使用 ioctl() 系统调用设置端口的波特率时, 它失败。我在下面给出代码。谁能解释一下?第二个功能总是失败......
int f, status;
if (f = open("/tyCo/1", O_RDWR, 0) == ERROR)
{
printf("error opening serial port; exiting...");
return 1;
}
if (status = ioctl(f, FIOBAUDRATE, 2400) == ERROR)
{
printf("ioctl error; exiting...");
return 1;
}
【问题讨论】:
-
只是为了清楚。你是说你打开端口然后设置波特率?如果正确,请尝试设置波特率,然后打开端口。
-
@dbasbett -- ioctl() 需要从 open() 调用返回的文件描述符 -- 你建议如何先设置波特率?
-
m -- 检查您正在使用的设备上的文档以查看有效的波特率是多少。还要仔细检查设备上的任何配置设置。
标签: c serial-port vxworks baud-rate