使用407的USB高速接口驅(qū)動4G模塊(龍尚u9300c,移遠(yuǎn)EC20),枚舉成功后,串口1通過USB與4g模塊透傳數(shù)據(jù)?,F(xiàn)將STM32(USB) 4G的驅(qū)動代碼分享給大家。
速度就是usb2.0全速,理論最高1.216MB/S。實際肯定要低很多。由于USB是主從結(jié)構(gòu),所以讀取數(shù)據(jù)是輪詢方式,主機(jī)驅(qū)動必須不斷發(fā)送in令牌。實際不可能把全部cpu資源都用來發(fā)送in令牌。具體最大速度我也沒有測試過。我的目的不是速度,是想省一路串口。
枚舉后是批量傳輸類型。實際并沒有真正枚舉,只進(jìn)行了設(shè)置地址和設(shè)置配置的標(biāo)準(zhǔn)請求。類請求只發(fā)送了設(shè)置波特率和使能串口。之后就是端點數(shù)據(jù)收發(fā)了。由于是全速,端點只有64字節(jié)。所以發(fā)送太長數(shù)據(jù)要分包發(fā)送。
只使用了虛擬出的AT指令的串口。一般4G模塊可以虛擬出5個串口。只使用AT命令串口即可實現(xiàn)短信,語音,TCP功能。
說明:
模塊與STM32407走USB通訊。為了方便演示,數(shù)據(jù)又通過串口與PC連接。
PC←→MCU串口←→MCU-USB←→4G模塊
該驅(qū)動代碼資料來源于正點原子。