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