別了,CH348Q,覺得我不需要再研究你了

近日有一個項目需要用MCU的USB驅(qū)動CH348,將MCU的USB擴展成8路串口,這個本來不是一件很困難的事,但是對我來說,還是比較難的。第一我沒有接觸過USB,第二,我在網(wǎng)上搜到的CH348Q資料中沒有任何關(guān)于CH348寄存器,命令設(shè)置或USB協(xié)議相關(guān)的內(nèi)容。一開始我一頭霧水,心想,這個我肯定搞不定了,不知道該如何下手。然而,我按我的感覺,既然要用USB驅(qū)動該芯片,首先我需要知道USB是什么,USB通訊的大致過程,怎么實現(xiàn)USB主機,主機怎么和從機是如何建立通訊的??戳艘惶旌?,我覺得USB太復(fù)雜了,特別是自己實現(xiàn)USB主機棧。所以就想著使用開源的USB協(xié)議棧。于是我就把開源USB協(xié)議棧移植到了我的MCU中,經(jīng)過一頓猛如虎的操作后,我發(fā)現(xiàn)CH348與MCU連接成功后,MCU的USB設(shè)備連接中斷可以正常生產(chǎn)了,此時,說的輕松,實現(xiàn)搞的我頭疼,因為我用的是某國產(chǎn)的MCU協(xié)議,關(guān)于USB的介紹很少,后來知道他使用的是MUSB的IP。一開始找了例程后,USB從機接上去,沒有反應(yīng),搞的我快沒信心了, 后來發(fā)現(xiàn)找到SDK有問題,我對著IP資料慢慢核對寄存器,終于搞到了。當能識別到USB從機后,我的信心大增。就開始研究USB的設(shè)備連接過程,發(fā)現(xiàn)在連接過程中,程序總是會跑飛,哎。。。一波未平,一起又起。于是又要找程序死機的原因,發(fā)現(xiàn)開源的usb協(xié)議棧中似乎有個bug,導(dǎo)致程序會執(zhí)行未初始化的指針函數(shù),也不知道是不是我理解的不對,反正改了后可以正常走完連接過程了。當我看到能正常讀到CH348的設(shè)備描述符后,我開心極了。其實我知道,這也僅僅是一個未接觸過USB的人才會有的快感,對于一個玩過 USB的人來說這是個小兒科。完全MCU的枚舉后,我開始研究CH348的驅(qū)動,此時比較頭疼,找了半天也沒有找到CH348有關(guān)于USB寄存器設(shè)置及USB協(xié)議的文檔。但是我找到CH348的linux下的USB驅(qū)動,所以,我就按著linux驅(qū)動進行一頓操作猛如虎,一看運行結(jié)果二百五,竟然只能發(fā)出數(shù)據(jù),不能接收數(shù)據(jù),設(shè)置串口屬性也沒有效果。嘗試了幾次后還是不行,于是,我只能通過PC的USB接CH348,然后抓包分析,最后,皇天不負有心人,終于被我調(diào)通了,后面我應(yīng)該就不需要再研究CH348了。如果大家也要這么使用CH348,可以試試同樣的方法。

很強


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

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