WCH沁恒单片机
直播中

Arvinhw

9年用户 917经验值
擅长:嵌入式技术
私信 关注
[问答]

Linux4.4加载ch34x驱动后配置串口参数异常是什么原因?如何解决?

使用的芯片是ch340,下载最新的驱动CH341SER_LINUX.ZIP编译加载后出现ttyUSB0设备,对ttyUSB0设备进行操作,发现设备波特率被默认设置为19200,修改ch34x_attach函数中的这部分代码可以改变波特率的:
ch34x_vendor_read( VENDOR_VERSION, 0x0000, 0x0000,
serial, buf, 0x02 );
ch34x_vendor_write( VENDOR_SERIAL_INIT, 0x0000, 0x0000,
serial, NULL, 0x00 );
ch34x_vendor_write( VENDOR_WRITE, 0x1312, 0xD982,
serial, NULL, 0x00 );
ch34x_vendor_write( VENDOR_WRITE, 0x0F2C, 0x0004,
serial, NULL, 0x00 );
ch34x_vendor_read( VENDOR_READ, 0x2518, 0x0000,
serial, buf, 0x02 );
ch34x_vendor_write( VENDOR_WRITE, 0x2727, 0x0000,
serial, NULL, 0x00 );
ch34x_vendor_write( VENDOR_MODEM_OUT, 0x009F, 0x0000,
serial, NULL, 0x00 );

但是无法修改奇偶校验等配置,追踪ch34x_set_termios函数,发现按函数中的参数配置了确没有效果。

请问有没有配置这些参数的文档?

回帖(3)

康永清

2022-7-13 10:09:34
您好,请使用如下链接中的341串口驱动,有使用问题随时与我沟通。链接地址:https://github.com/WCHSoftGroup/ch341ser_linux
驱动使用时无需关注驱动底层实现细节,用户仅需要使用标准串口API操作tty串口设备即可。
Linux通用串口应用例程:https://github.com/WCHSoftGroup/tty_uart
举报

李亚祎

2022-7-13 10:09:39
您好,我用您提供的串口程序测试新的驱动发现还是有同样的问题。修改main函数中调用的libtty_setopt函数的参数配置但是没有生效。
        ret = libtty_setopt(fd, 115200, 8, 1, 'e', hardflow);        if (ret != 0) {                printf("libtty_setopt error.n");                exit(0);        }无论libtty_setopt函数的参数修改为何值,在CP端用sscom接收时,只有将sscom的波特率设置为19200接收到的数据才是正确的。
CH340和CH341的驱动是否有区别?
ch34x_vendor_write( VENDOR_WRITE, 0x1312, 0xD982,         serial, NULL, 0x00 );ch34x_vendor_write( VENDOR_WRITE, 0x0F2C, 0x0004,        serial, NULL, 0x00 );之前在你们官网下载的驱动,修改0xD982、0x0004为其他值时是可以配置为其他波特率的
举报

余彦

2022-7-13 10:09:45
您好,CH340和CH341的串口模式使用为同一个驱动。您这边遇到的非常规现象,方便时与按照我的联系方式与我做下沟通。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分