WCH-Link 無(wú)法在 linux 上識(shí)別出 ttyACM0 串口

最近嘗試在 linux 上開發(fā) gd32v103 , 通過(guò)下載 linux 版本的 MounRiver Studio, 根據(jù) beforeinstall 目錄的 start.sh 腳本的描述.執(zhí)行完之后可以識(shí)別到 wch-link 設(shè)備,但是無(wú)法識(shí)別出 /dev/ttyACMx 設(shè)備.具體的消息如下:

```

[676439.922047] usb 1-4.2: new full-speed USB device number 51 using xhci_hcd

[676440.003539] usb 1-4.2: New USB device found, idVendor=1a86, idProduct=8010, bcdDevice= 2.01

[676440.003547] usb 1-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[676440.003551] usb 1-4.2: Product: WCH-Link

[676440.003555] usb 1-4.2: Manufacturer: wch.cn [676440.003558] usb 1-4.2: SerialNumber: 0001A0000001 [676440.023873] cdc_acm 1-4.2:1.1: Separate call control interface. That is not fully supported.

[676440.023884] cdc_acm: probe of 1-4.2:1.1 failed with error -22

```

我用的 linux 的內(nèi)核版本是: Linux red.WS 5.8.15-201.fc32.x86_64 #1 SMP Thu Oct 15 15:56:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

請(qǐng)問(wèn)這個(gè)可能是內(nèi)核的原因嗎? 還是 wch-link 固件目前還不能很好的適配 linux(可以 probe 出 /dev/ttyACMx 設(shè)備)呢?

我debian10也不行,lsusb有CDC接口,但是/dev/下沒(méi)有ttyACM

```

/:? Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
??? |__ Port 11: Dev 53, If 0, Class=Hub, Driver=hub/4p, 480M
??????? |__ Port 1: Dev 71, If 0, Class=Vendor Specific Class, Driver=, 12M
??????? |__ Port 1: Dev 71, If 1, Class=Communications, Driver=, 12M
??????? |__ Port 1: Dev 71, If 2, Class=CDC Data, Driver=, 12M

```


我在Ubuntu20下,WCH-Link的串口不能用,lsusb與樓上的情況一樣。

用Python向CDC接口的兩個(gè)端點(diǎn)讀寫數(shù)據(jù),能用115200bps波特率通信,目前不能設(shè)置其他波特率,下面貼一下實(shí)時(shí)接收的腳本。

可能是由于WCH-Link的CDC接口缺少用于配置串口設(shè)置的控制端點(diǎn),不符合CDC接口標(biāo)準(zhǔn),電腦就無(wú)法識(shí)別了。

#!/bin/python
import?usb.core
import?usb.util

def?wchlink_cdc(vid=0x1a86,?pid=0x8010):
????dev?=?usb.core.find(idVendor=vid,?idProduct=pid)
????if?dev?is?None:
????????raise?usb.core.USBError('找不到WCH-Link')
????if?dev.is_kernel_driver_active(0):
????????dev.detach_kernel_driver(0)
????dev.reset()??????????????????????????#?復(fù)位設(shè)備
????cfg?=?dev.get_active_configuration()?#?獲取配置
????cdc?=?cfg.interfaces()[2]????????????#?獲取CDC接口
????ep_read?=?usb.util.find_descriptor(cdc,?custom_match=lambda?e:?e.bEndpointAddress==0x83)??#?RxD
????ep_write?=?usb.util.find_descriptor(cdc,?custom_match=lambda?e:?e.bEndpointAddress==0x03)??#?TxD
????return?dev,?ep_read,?ep_write


dev,?ep_read,?ep_write?=?wchlink_cdc()

#?實(shí)時(shí)接收數(shù)據(jù)并打印
while?True:
????try:
????????data?=?ep_read.read(64)
????except?usb.core.USBTimeoutError:
????????pass
????else:
????????print(bytes(data).decode(),?end='')

#?發(fā)送數(shù)據(jù)
#?ep_write.write(b'example?send?data')



你好,該問(wèn)題已經(jīng)解決,更新link固件即可??梢詫⑿枨蟀l(fā)我郵箱:wangyy@wch.cn,我可以先發(fā)測(cè)試固件。


你好,相關(guān)情況已經(jīng)通過(guò)郵箱和你聯(lián)系,希望可以提供驅(qū)動(dòng)我這邊測(cè)試一下,i_f01.gif


我也遇到相同問(wèn)題?http://www.findthetime.net/bbs/thread-71088-2.html#20


使用2.2 測(cè)試版本的固件, /dev/ttyACM0 出來(lái)了,就是 串口的波特率不能高, 會(huì)工作不正常, 比如我這邊測(cè)試 115200正常,460800 接收就會(huì)出問(wèn)題


emmm,上面波特率應(yīng)該是硬件問(wèn)題,剛剛想起WCH-Link 沒(méi)有外部晶振j_0004.gif


WCH does not NAK baudrates they cant support. 460800 baudrate is too high, the firmware cant select a correct divisor @48MHz to support 460k8. 115k2 should work. Maybe also 230k4.


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频