gpt4 book ai didi

linux - write() 返回错误 :invalid argument when using serial port

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:05 24 4
gpt4 key购买 nike

我正在尝试使用串行端口发送数据,但写入命令总是返回 -1。

这是写入命令的代码。

int WriteComm( int Comid, void *buf, int nobtw )
{
unsigned long nobw;
nobw = write(Comid, buf, nobtw);

move(10,5);
perror("");
sleep(10);

return nobw;
}

这是调用它的代码

gnobw = WriteComm(theApp.idComDev[Seg],&head[1],1); //send network address

我得到的错误参数是无效的,但在谷歌上查看后,我找不到任何解释这意味着什么或如何修复它的内容。我发现关闭的东西是 this但它使用的是 st0 而不是 ttyS0,所以我不确定它是否是同一回事。

任何人都可以解释我做错了什么导致这个错误以及如何解决它吗?

最佳答案

如果 write 调用失败,您应该只检查 errno(这包括调用 perror()),它通过返回 - 1.如果写入成功,它会保持 errno 不变。

为了对此进行测试,您真的应该将返回值分配给具有符号类型的变量 - 最好是 ssize_t - 而不是 unsigned long

关于linux - write() 返回错误 :invalid argument when using serial port,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com