首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 OTG的一点心得和问题

STM32 OTG的一点心得和问题

最近要用USB Host扩展wifi,所以抽几天空研究了下stm32的otg,这里有几个心得:
1. 官方OTG库写的不错,他的框架是while循环调用的状态机,大量的中断来驱动数据收发和设备拔插。官方的HID,Mass class类驱动都是要人工加载,而不是自动识别的,这个不太好。
2. 为了应用程序可移植性,一般我都是自己重写驱动。对stm32的otg host模式有些感悟:
.能轮询的东西就不用中断, 比如检测DEVICE拔插,对实时性没啥要求,用中断没意思,还会造成系统状态机复杂化
. stm32的中断有两种,一种是全局中断GINTSTS,比如设备拔插,发送缓冲区空,接收缓冲区满等。一种是通道中断HCINT(0..7),里面包括通道trnansaction成功,ack,nak,stall反馈等。所以对于收发数据,需要根据GINTSTS中断来决定读写数据,从HCINT获取transaction是否结束或者失败。这个搞清楚了,这个驱动就没什么难度了。
继承事业,薪火相传
返回列表