使用407的USB高速接口驅(qū)動(dòng)4G模塊(龍尚u9300c,移遠(yuǎn)EC20),枚舉成功后,串口1通過(guò)USB與4g模塊透?jìng)鲾?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資源都用來(lái)發(fā)送in令牌。具體最大速度我也沒(méi)有測(cè)試過(guò)。我的目的不是速度,是想省一路串口。
枚舉后是批量傳輸類型。實(shí)際并沒(méi)有真正枚舉,只進(jìn)行了設(shè)置地址和設(shè)置配置的標(biāo)準(zhǔn)請(qǐng)求。類請(qǐng)求只發(fā)送了設(shè)置波特率和使能串口。之后就是端點(diǎn)數(shù)據(jù)收發(fā)了。由于是全速,端點(diǎn)只有64字節(jié)。所以發(fā)送太長(zhǎng)數(shù)據(jù)要分包發(fā)送。
只使用了虛擬出的AT指令的串口。一般4G模塊可以虛擬出5個(gè)串口。只使用AT命令串口即可實(shí)現(xiàn)短信,語(yǔ)音,TCP功能。
說(shuō)明:
模塊與STM32407走USB通訊。為了方便演示,數(shù)據(jù)又通過(guò)串口與PC連接。
PC←→MCU串口←→MCU-USB←→4G模塊
該驅(qū)動(dòng)代碼資料來(lái)源于正點(diǎn)原子。