你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 474|回复: 1

STM32使用感悟

[复制链接]

1

主题

3

回帖

0

蝴蝶豆

初级会员

最后登录
2020-7-21
发表于 2015-1-29 17:35:33 | 显示全部楼层 |阅读模式
1. 官方OTG库写的不错,他的框架是while循环调用的状态机,大量的中断来驱动数据收发和设备拔插。官方的HID,Mass class类驱动都是要人工加载,而不是自动识别的,这个不太好。

2. 为了应用程序可移植性,一般我都是自己重写驱动。对stm32的otg host模式有些感悟:
.能轮询的东西就不用中断, 比如检测device拔插,对实时性没啥要求,用中断没意思,还会造成系统状态机复杂化
. stm32的中断有两种,一种是全局中断GINTSTS,比如设备拔插,发送缓冲区空,接收缓冲区满等。一种是通道中断HCINT(0..7),里面包括通道trnansaction成功,ack,nak,stall反馈等。所以对于收发数据,需要根据GINTSTS中断来决定读写数据,从HCINT获取transaction是否结束或者失败。这个搞清楚了,这个驱动就没什么难度了。

另外有个疑问:
目前发现stm32的接收行为,是写一次HCCHAR寄存器,他发一个IN token,无论收到nak还是ack,后面都停下来了。
有没有一种模式,写一次HCCAHR命令,他能一直工作到ack为止,如果收到nak,他就不不停的IN?这对于网卡接收数据是至关重要的。
回复

使用道具 举报

17

主题

314

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-12-29
发表于 2015-1-29 22:17:54 来自手机 | 显示全部楼层
看到,就得回复
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版