From 41ffa44a3fc0187e8edd7ba07c576a2a73220b82 Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Mon, 1 Dec 2025 12:28:55 +0800 Subject: [PATCH] docs: update rst Signed-off-by: sakumisu <1203593632@qq.com> --- docs/source/demo/usbd_audiov1.rst | 4 +- docs/source/demo/usbd_audiov2.rst | 7 ++- docs/source/index.rst | 7 ++- docs/source/quick_start/demo.rst | 15 ++++++ docs/source/quick_start/esp.rst | 17 ------ docs/source/quick_start/img/question1.png | Bin 0 -> 12295 bytes docs/source/quick_start/img/question2.png | Bin 0 -> 40757 bytes docs/source/{ => quick_start}/opensource.rst | 0 docs/source/{ => quick_start}/q&a.rst | 54 ++++++++++++++----- docs/source/{ => quick_start}/share.rst | 0 10 files changed, 66 insertions(+), 38 deletions(-) delete mode 100644 docs/source/quick_start/esp.rst create mode 100644 docs/source/quick_start/img/question1.png create mode 100644 docs/source/quick_start/img/question2.png rename docs/source/{ => quick_start}/opensource.rst (100%) rename docs/source/{ => quick_start}/q&a.rst (71%) rename docs/source/{ => quick_start}/share.rst (100%) diff --git a/docs/source/demo/usbd_audiov1.rst b/docs/source/demo/usbd_audiov1.rst index 9d2e3051..794ac8f6 100644 --- a/docs/source/demo/usbd_audiov1.rst +++ b/docs/source/demo/usbd_audiov1.rst @@ -1,5 +1,7 @@ usbd_audiov1 =============== -.. note:: 在使用windows 时,当修改描述符任意参数时,必须同步修改字符串描述符,并且卸载驱动,否则windows会认为设备未更改,继续使用旧的驱动,导致无法识别设备。Linux 不受此限制。 +在使用 UAC1.0 时,需要注意以下几点: +- 在使用windows 时,当修改描述符任意参数时,必须同步修改字符串描述符,并且卸载驱动,否则windows会认为设备未更改,继续使用旧的驱动,导致无法识别设备。Linux 不受此限制。 +- QQ 群文件中下载 RemoveGhostDev64.exe 可以自动删除所有 USB 注册的驱动信息,无需第一步 \ No newline at end of file diff --git a/docs/source/demo/usbd_audiov2.rst b/docs/source/demo/usbd_audiov2.rst index 816532c9..0390f17d 100644 --- a/docs/source/demo/usbd_audiov2.rst +++ b/docs/source/demo/usbd_audiov2.rst @@ -1,6 +1,9 @@ usbd_audiov2 =============== -.. note:: 在使用windows 时,当修改描述符任意参数时,必须同步修改字符串描述符,并且卸载驱动,否则windows会认为设备未更改,继续使用旧的驱动,导致无法识别设备。Linux 不受此限制。 +在使用 UAC2.0 时,需要注意以下几点: -.. note:: windows 10 uac2.0 功能不完善,请使用 windows 11 测试uac2.0 功能。Linux 不受此限制。 \ No newline at end of file +- 在使用windows 时,当修改描述符任意参数时,必须同步修改字符串描述符,并且卸载驱动,否则windows会认为设备未更改,继续使用旧的驱动,导致无法识别设备。Linux 不受此限制。 +- QQ 群文件中下载 RemoveGhostDev64.exe 可以自动删除所有 USB 注册的驱动信息,无需第一步 +- windows 10 uac2.0 功能不完善,请使用 windows 11 测试uac2.0 功能。Linux 不受此限制 +- windows 中设置的采样率表范围在多通道时(通道数大于2)计算有误,比如设置 8K~96K,那么实际是大于等于8K 小于96K,而非小于等于96K。Linux 不受此限制 diff --git a/docs/source/index.rst b/docs/source/index.rst index a6dc3d8a..8cdb78cd 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -56,10 +56,9 @@ CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 quick_start/demo quick_start/transplant quick_start/rtthread - quick_start/esp - q&a - opensource - share + quick_start/q&a + quick_start/share + quick_start/opensource .. toctree:: :maxdepth: 1 diff --git a/docs/source/quick_start/demo.rst b/docs/source/quick_start/demo.rst index ebb211a9..e51a2e3e 100644 --- a/docs/source/quick_start/demo.rst +++ b/docs/source/quick_start/demo.rst @@ -29,6 +29,21 @@ - esp32p4:一个 USB2.0 内置全速 PHY 芯片,一个 USB2.0 内置高速 PHY 芯片,支持主从机。 - 默认 demo 采用组件库安装的形式,在 https://components.espressif.com/ 中搜索 cherryusb 即可 +ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发环境。 + +- ctrl + shift + p 选择 ESP-IDF 欢迎界面,然后选择 Component mananger + +.. figure:: img/esp1.png + +- 找到 cherryusb 并安装 + +.. figure:: img/esp2.png + +- 打开 menuconfig,并打开 cherryusb 的配置,根据实际情况选择主机或者从机模式 + +.. figure:: img/esp3.png +.. figure:: img/esp4.png + 基于飞腾派系列芯片(官方 SDK 支持) ----------------------------------- diff --git a/docs/source/quick_start/esp.rst b/docs/source/quick_start/esp.rst deleted file mode 100644 index 29639e05..00000000 --- a/docs/source/quick_start/esp.rst +++ /dev/null @@ -1,17 +0,0 @@ -基于 ESP-Registry 开发指南 -=========================== - -ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发环境。 - -- ctrl + shift + p 选择 ESP-IDF 欢迎界面,然后选择 Component mananger - -.. figure:: img/esp1.png - -- 找到 cherryusb 并安装 - -.. figure:: img/esp2.png - -- 打开 menuconfig,并打开 cherryusb 的配置,根据实际情况选择主机或者从机模式 - -.. figure:: img/esp3.png -.. figure:: img/esp4.png \ No newline at end of file diff --git a/docs/source/quick_start/img/question1.png b/docs/source/quick_start/img/question1.png new file mode 100644 index 0000000000000000000000000000000000000000..a852e6aad9059059bc4676b0fad357527535dfd1 GIT binary patch literal 12295 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 literal 0 HcmV?d00001 diff --git a/docs/source/quick_start/img/question2.png b/docs/source/quick_start/img/question2.png new file mode 100644 index 0000000000000000000000000000000000000000..e00b3bfa35fd5c2be7dc14d23a6ffd36c9d92dca GIT binary patch literal 40757 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

hTriY}$_c<=f$=tN_;CN2xl&IqPz6 zo*2n90Rx4PaV4D?RbO5ii`m{Rf2{-A38}+wt2g8>LHDxnVtg04+8p`BPbxl^Vn{N{ z`)ER?lH{6`jK)jQ_QeQyIN6PCNt~&-V4-M#h`rUl#!ZT0ZNJ#glfknB$q`~Ltp5Tt zAwOlw@okA&7G6u}geAsXjB4yKm#JZEy_t^q#;(`A!aO0`&Kl}NwztQPhWM-TP^mdk zETLSm_|h<)oXMthu%YL7(WUUl>n-?lv^hwRf)Q0A*{sll2vuP_Wo2GjXn*=^o1oEd zS#U%Nx5hB zySeBGnI$UUu0Li^iYBdMpVFGev`Cbs&fcWD+j^Zy`IruaKc&ueUJ!@0l@-m)Ow$U; zl`+qH{XQ|K_d4&5m2exsYE^k`_}W&JwKC6FA2`nqEXAf5V8Iyop4+!IVyLuvS__;B z{6ifU7iB43V&jzi@9Oo8=0`S@U)l@l6WueCrI7jJ_y3(UTE}^nM!u^1$^5@2V2?V(q>-fY5t#@I zQrVTmcF{_WmEI?ZB{?XCVbrr;wBKn6&6++ynJTnC zsW<*E%SNQ9S~T;snz8vkYSo)QMV?PG0ZQVbssY(VfH}iaI7wIHKpDd&1##0EGk36?^GL3X{O0|WZX~Q~ z^ee{Uj0?+2|5w$=(w)F^IDM$&!ru-ae$5K*ehnxAYiMU|gz{7>f7F{r5clccr~( z0|kY?M_oz5NCRX*>(4kq>ya>_XmRIEMEo<=O9!}6Iy_rIk- zyB^IW>`HLZ7N80jnj%2D3d4?8pRoT}pCVG}a8c$grm zhN20EwUzAOJ;syvuD|$Mua;&}_!r!vTnhjGl1gNY8&s?IMJQr48YJkb~p&{IkLN>OpuX&6o zsrC#hTvr6!ODkEwNXKt3pY;zlX|pha<)`~C3`1c|*tYR+>M+^VbpXjZi)lA7g1Rsw zUt9B|B~nD{t47S4r;2J;YsZhB83nfEs|Lr)->9vg>CDtaY>qeH5D_NJ-Z=%y%=sHG zEO_XcOx%;7kpKr~y(Y{Vqb=GLH~A}p24hltbx!3AbtfOVhU~FX++5bK@6$X{q!6|Lf9TnaQIJsC zsQf(wUWee2edCxK3Bavm!ezG!;{9=LYSwlVj*;i>M?%&7;bQIAh!JCo{{X6kyhR0h z?q9-3579jzKaVjKX@bl_%V+rkw%S4(^I z?pQG|OLay~%E0U)A2@KvWv0%W%+~y2Z3YRNPO4w%7*9`G$mY)!^N7d9f1+J6em(n> z#;AX+W)W>S*P@gsp`Dl|MIXl4IyPemFP8FtoafrHOORT?*{iB#Wskr0du)J_NRqrI+LIh=epNQgn!b}pvDT?r%yVPR%0-=c*Vvr^ZK_d{PH&H?fp#_QbUZjgkhk!_Lp@+_m z>$~T!TY`~pZj0&;{W+LG-uIgDltp+JRp`+3T_puP)m~&PxDvPC3G$xBn8`( zm;BGbq1#CXmC7y4@^~1h>f1{dx)ry9U(cY%mF+W6V^3wL7O2lZGz=ceGrX;D!U}kl z@HgOFsgFYjkWVb5FP@ub8CL|kKu^>P2luh*MmWF*GAv29NHYvgM?MT>ERPf>A3_F^ zbq#LoA1{P=5{HN4lI9xI<^S5}gojk&3KD~1@C9ZtmM^2!u;xfR=$eC4@UE*=_gE9VeeO2P4 zj6n3sZ;0$zUMG+ng47hllFMsNQ#q`R>z1-4flOuB&DlN7(1xsoEkqdr=dm$wF6T30 zO$P=Is*lXP;%5#eFI^Wz_X~X(jT#j=*S0byVsp*+`f%Sejzdli>DrFaC)Th{s;FEs z8Y@gUh0Hp0qf#}wT(SX2ny}nw?+;~>Yx>DMr9a=Ew!TtJ9Edi#O~C9gI;neR3u02?}3gba^P) zm8TysV0uS2^m)Db_!8f)H}xvhRMNF;diGpf@bdG!WEFc}14&qeJUz7do1emRRQ-t3 zhl!f}8%m|@SFAd`?6)@x^FFDDhHSYBR7Gj@>WJ$@hDc_cVbllBqZm2!`J;X=CcMc) zC;mI>V3BCH{N$`=gC@KPz8GRbrs~+M+Ts*H`*H>6g}{Jv=x=1|6*CiFz3Rw%FjY;= zppCQZ8zhA0YV0_i)LqSlBf3i*11YZ$h2IP<0!E_YOi-QX=WsSrK8@eu?!4t08WkoL z`oMu)?Ob8j9Xn}rhyz3o4~e>huuvN4wL6k0(UZ4|+|0pio_X%-HjP06$O@&E0@9{6 z?7hm^tkA-@KTk3=duN#25QL>^TS_7km=yjHc5+k~|O!(F1+%`kBn>(KVM*ns>EEBe`H$+Mkp<5itz?O18HQ}GCq{j`za^!3t*gJM}xtA3F!!ae81%9g!+6_+DzW==Fu zL%&1SlY*_<_af6f-rHG_R;^3OQwp?p?zi0vsHfTT{f(2jkD4w4hh04tk`Z&n)*5_@ ze(nVH%|%xW(wsQHZ#!LW1Uz2gv7N&HZuUdXq1blC{?sn9wmrKuFf{ECmX!2pd+}Fw zxeUqW&E~ZFF2;o!y|q!}YO{w?TjPGtpHwGz@3IqIj7(X?Za$h)+3?2u!8Vj6?&GZ{ zgBVUF<~=d%&{8%0t;vk<*O~+F+4-ask^6C-KJO`4|B@B|JCZZi8bH-)nrTv35Iy?3 zJOXS9wyK6+yb^j+`I`sZ9`jO&5xn()1p8J1-9GmWR=cFJa6fz(!&@vLk;h{mugsCP z>QHyVj8GO*6%wSUEgu?c5xFmB>AXK10U+Cz3=g6k>QA&NjpQ7lOfLa!fLBI^@V>&W zgZ;+q@fl?4%*Y3cuK{Vk$q^?NrT0v5zla9P{bpGMVp!ndug(V zHHiTTK)%ZF;Nc)?HDe^l{iLSyWV`%#yX%y|yNd3SN+~{Hln6?Z zHUweRnQO6kk)icB-@drts=5u#4@ADc`}y{!ffnRR83G+-`{j9|;;roI4M0%IF%f5r z7ZwXKr@v;VQyvO)s~wsJ1O~_xLtxa59)pOpCV`BY{tX4_P!4nNMDmiYW8tteSf=au z_To<&y9SBqB`@F3N7^&bhLl@9WLT?F{wO=Ixr%6*#4-{Y#kbX`1{VigbM>B}tougc zys=76N0Mqx`198NaBGk4ZgYoqhIKIx)fg;nxA!LB7q0naJ(^7m9-d@ZotnDz*?@0D zC(#o`Cp=ZMO>=CE6n^d`9bhOa z%2rw3cW*wNix>nlMCiaId!+TM_i+wxIuT#;V#L8fLCyr%YA?p^;BNv=%T`sv^}FkE zoW^j+9x&CqcVxOFN@hjpCgsqE!*R9&;Un5fCH6=2dv zsV0c{JWo;KATFsHaWwT2KcC)`HP@yP2Him=Dz<8bO43Oy!K9vh%w{xMaPH0S7l@u3C1=1fDC4SpQeq4_#ok2{B_%j7uxthHq^=x`MV5AZ0=s?NRkPWV}>4wottp_c$Fcqu?5k<(9e zs#k>H=V>sjIXr75&4sk;RRG6Y6{X@3>D(4MO2;sFK|f+y?;pEtg*nJit3dx&9( zLDTsS=N5EXC$3JqB3+K_y{t}mzOdcbGs`c>Orgj-epIsaU-xp$)ftO+Q@FMj>(pPb zX%22iTCW+K8t31adSpKXo{46K9zqD7w0+%CQy88(@#grqmo_&$Y27$Wl0t88G-EBdWIH;!UA@pGLPXe#{P&KL z#W+I==vQ=R(mCs>??^r3ZnjYM#eC)rT#WdZ=)xOD#C4-dDF)svk>uYvFX26jeu)bh z_y?P+msQGb)`D&iM z7o~MDD2tI@VI6L%$3^!Ng7;neu6Bv<9E)9R8jCLz#o^a@wIsFf;Mik4i0q?-Ki;U_ z9_JfI7B`n@y&<7xFxlUD0B`GDY7hE~D2b|MSrO5EeMU=_j~%3h*B%Y=z2I@&dt^QP z zDPPQs7KrL8_37OSW_^%yrR2!bb`En>hw*;&9xcJ{`OZq!cH8VRj39s1$Y4><(jAdy z)+JZIe$teCw94G1%>M8xsHxOSj+$y#=HHWUgi1U;yI8W13$NT01UE^K9?D|tP}BC& za&3Jd4?$ek6w@TauVnV0!cG(dTIyagpd4(qsh}Xm59#BwtyYr?pLHstU=bs|7T$JZ zddcvIyobqTn)dE!1aUUbg1IKpra_EzgQcXI-BLJj*qG7(ZYjcv_AGs0jo)z;UI~7V zN<6CvPZlATRf%!FTjMQtgt$7th6B8Y8-1VXHu|Ec&~N|B^s-g3BJUW0wk3oUiE;^X6W*QW`p#<7 zq&A+2E{W#i3AFH8rKHZE%S01W0`41Uj|y~5$37-YAv*$MA%qB7?&<_PQNQZ1aY+@8 zSWctOc8$rGRhy3w0F36osLoj*I4Qt!#2k?Ea!H>0dAWLxB%@wcl_M2fO=^ivd*A1B z;8l4`?jat~(e&}|s*?$}kQ@nt=-^Ngbjh3!oRDj`=|MyF5o^-a-{mH!^RGp{SY29k zn2B1*XeyvMPAc7SIOf=t*H|zmM4<1=b6}I5vylRXr(c*90Avwl>i|iJ5+w&m@d4N^ z>OMR3tvk;F`L3_;RMf6rZwriGZ(&ceT+Wh}LJD>Xf-z34sdB>vKV&t$iCgIQ^% z>ASm=E6_HP()Bxbl*x7h?#qI9eElQhD7ypER?`(xWp^{pJI;-{{8ViD&jO)LNLiC5 z@Qk8%o44(Y+LGk!&%AvV;b%lM$-}9Du3|sbTfJw=n$4+i4NJKfQZ0r_9r>Z5p!{VH zs#eRFIUfJAG%ZswxY*nk>}%4OmNv@c=E}kHfgoM}@V`shRc`OT5E82Tq!Zdkd;X>9 zL-X=|Tw0XQ)El3h)yXTJJ&5U4F+}->U^Ll{$?Ph4 zd_x53MXsRd*i|jB6GL$vnCm+(=a;#NI?17I(qui+C`E0vE|H#_&?LBN^KxKGOIU~u z=^HTejI-+0EYYiY)RnbqP1Dy^h$m0zheA?!kWaAj!ofKoHb=feVi!EV6~|BJjov6L zX2|(T-K(ypFS9f3FRy9%Nfj|YMmANN4<4c?PZbB_qNN@b@98<8A5LRoTy+upb8YP3 z!!;1c<{$xPU~k2)k8=XR@o_f&0^Z@*26S1QfIMl%%hEMikx5~R(s_EJ&i2Y|^8ln4 z)0n2_MLEo;`q+(oh#nV0_grC9zAy#pC)I8a;^u5?IT>SpJAq&#SD9m^=wPj*7D8bd0jf++P(v7#)PsQiP=_5REZ}l z?1ps1d^PK9mgEa5!y5{Q*zJMKn#NSf$X$`duhA`0*J2BwdkO8Ws=}}u2JbH!V1!$) z)-vhVPcoSo<0mJWQVoMb^l%t9w9;%dLFwT{(M(6P^?nq3YsrXx9lN8Bm)K@t1LKy% zGSj`o$dRcVGj7AN7k9+-=Ugif?42AQ8s9Gp4!!PfgF1qH(Y{li@;|2YZ-e3n{CKS4 zAZmPA+XNO$*|_w(@ll~2mm2*@U3Pu_lS zi(%s|%;!J!{xdFr2J;8nC=}OUOUgTSA0rw>DcZlRbNnAi$eY!n7r)R-eL$KumY8xn zoaL4NQBw;`*Mfmyg9o1ox z^A}o){r@4SN-|p+u3URKC8DIs2f%L zN!^xz6B+)*YHQ9PLfd1h^V2LBIf~xC_|xBi5%b3gx+Sp1ndnO^TMqBv`)hL6Swv+z zPo(@K_c+uC@IU4af%|ul{xefKro?B5sPkV$wvsT+*n)R|DEPlH<38stvNjSZsk+eW zh=MMy`E83l_gr1;X^?SW0yp%#Pp1zzVM??2f3b_-qy?S=V-hCb{IlBbS)A@uYMCT0HkC3d|J6aK_Cv|-*; YQ0-R5u3C5g-&h~`RUP$=E2cjG0#ehO%>V!Z literal 0 HcmV?d00001 diff --git a/docs/source/opensource.rst b/docs/source/quick_start/opensource.rst similarity index 100% rename from docs/source/opensource.rst rename to docs/source/quick_start/opensource.rst diff --git a/docs/source/q&a.rst b/docs/source/quick_start/q&a.rst similarity index 71% rename from docs/source/q&a.rst rename to docs/source/quick_start/q&a.rst index 59b9dc7d..dfdbac85 100644 --- a/docs/source/q&a.rst +++ b/docs/source/quick_start/q&a.rst @@ -46,16 +46,52 @@ GD IP 采用 DWC2,但是读取的硬件参数都是 0(我也不懂为什么 USB_OTG_INEP(i)->DIEPCTL = (USB_OTG_DIEPCTL_EPDIS | USB_OTG_DIEPCTL_SNAK); USB_OTG_OUTEP(i)->DOEPCTL = (USB_OTG_DOEPCTL_EPDIS | USB_OTG_DOEPCTL_SNAK); +除此之外可能存在其他未知 BUG,请自行测试。 + +开启 USB_LOG_DBG 后无法枚举 +---------------------------------------------------------------- + +有且仅有商业性 IP 开启后可以枚举,其余 IP 禁止开启,否则无法枚举。懂得都懂。 + +USB3 CV测试用哪个版本 +------------------------------ + +1.4.3 版本及以上 + +Ep addr XXX fifo overflow +------------------------------ + +.. figure:: img/question1.png + +该错误表示该端点默认设置的 fifo 空间不够用,需要增大 fifo 空间,通常见于 DWC2/MUSB IP。FIFO 设置参考相关的 glue 文件。 + Ep addr XXX overflow ------------------------------ -该 IP 硬件上没有这么多端点, 请更换 IP or 减少端点使用。并且默认 demo 不做双向功能,考虑到不是所有的 IP 都支持,因此默认是 81 02 这样的而不是 81 01, -如果支持,自行修改。某些 IP 双向端点可能会占用相同的硬件信息,不一定能同时使用,自行检查。 +.. figure:: img/question2.png + +该错误表示该 IP 硬件上没有这么多端点, 请更换 IP or 减少端点使用。 +当然也可以修改为双向端点,考虑到不是所有的 IP 都支持双向端点,因此默认 demo 不做双向功能,举例默认是 81 02 这样的而不是 81 01,如果支持,自行修改。某些 IP 双向端点可能会占用相同的硬件信息,不一定能同时使用,自行检查。 This dwc2 version does not support dma mode, so stop working ---------------------------------------------------------------- -该 DWC2 版本不支持 dma 模式,禁止使用。 +该 DWC2 版本不支持 dma 模式,禁止使用。不使用 DMA 模式会频繁触发 NAK 中断(大概几十us一次),CPU 占用率过高。 + +OTG 有哪些芯片支持 +------------------------------ + +当前主线仅 HPM 芯片支持 OTG 功能,通过 ID 引脚自动切换主从模式,其他芯片请使用手动切换模式 OR 自行实现添加 ID 识别的驱动。 + +PC 识别的 COM 口如何更改名称 +---------------------------------------------------------------- + +这是微软对 CDC ACM 的驱动问题,无法修改,如需修改,请联系微软并缴纳费用+编写驱动后即可更改。 + +connect 和 disconnect event 不触发 +---------------------------------------------------------------- + +当前仅 hpm 芯片支持 connect 和 disconnect 事件,其他芯片请使用 USB 检测 vbus 电路。DWC2 IP 支持,但是由于需要占用引脚,并且大多是log 口,然后不同使能的配置也不一样,因此不做支持。 __has_include 报错 ------------------------------------------------------------------ @@ -78,6 +114,7 @@ Failed to enable port USB_ERR_NAK 说明 ---------------------------------------------------------------- + USB_ERR_NAK 只存在于 DWC2 buffer dma 模式,DWC2 在 buffer dma模式下对于中断传输不支持硬件处理 NAK 中断,因此需要软件处理,导致 NAK 中断非常多,建议搭配定时器使用。 DWC2 scatter/gather dma 模式下全部由硬件处理,但是不支持 split 传输。总结, **半斤 IP**。 @@ -85,14 +122,3 @@ USB host 连接 USB 网卡问题 ---------------------------------------------------------------- 表现为能识别网卡并且分配到 IP 地址,但是无法 ping 通,这是因为网卡自身需要开启自动拨号,通常需要使用 AT 口设置。具体为 EC20/ML307 等模块。 - -PC 识别的 COM 口如何更改名称 ----------------------------------------------------------------- - -这是微软对 CDC ACM 的驱动问题,无法修改,如需修改,请联系微软并缴纳费用即可更改。 - -connect 和 disconnect event 不触发 ----------------------------------------------------------------- - -当前仅 hpm 芯片支持 connect 和 disconnect 事件,其他芯片请使用 USB 检测 vbus 电路。DWC2 IP 支持,但是由于需要占用引脚,并且大多是log 口, -然后不同使能的配置也不一样,因此不做支持。 \ No newline at end of file diff --git a/docs/source/share.rst b/docs/source/quick_start/share.rst similarity index 100% rename from docs/source/share.rst rename to docs/source/quick_start/share.rst