使用407的USB高速接口驱动4G模块(龙尚u9300c,移远EC20),枚举成功后,串口1通过USB与4g模块透传数据。现将STM32(USB) 4G的驱动代码分享给大家。
速度就是usb2.0全速,理论最高1.216MB/S。实际肯定要低很多。由于USB是主从结构,所以读取数据是轮询方式,主机驱动必须不断发送in令牌。实际不可能把全部cpu资源都用来发送in令牌。具体最大速度我也没有测试过。我的目的不是速度,是想省一路串口。
枚举后是批量传输类型。实际并没有真正枚举,只进行了设置地址和设置配置的标准请求。类请求只发送了设置波特率和使能串口。之后就是端点数据收发了。由于是全速,端点只有64字节。所以发送太长数据要分包发送。
只使用了虚拟出的AT指令的串口。一般4G模块可以虚拟出5个串口。只使用AT命令串口即可实现短信,语音,TCP功能。
说明:
模块与STM32407走USB通讯。为了方便演示,数据又通过串口与PC连接。
PC←→MCU串口←→MCU-USB←→4G模块
该驱动代码资料来源于正点原子。