打印

C8051F USB怎么发送0长度字节数据?

[复制链接]
1226|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
graycker|  楼主 | 2017-8-21 22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
graycker|  楼主 | 2017-8-22 08:58 | 只看该作者
STM32的也行,有做过的没?深圳可以请吃饭感谢啊!!

使用特权

评论回复
板凳
zhs2007| | 2017-8-22 10:35 | 只看该作者
关掉中断,在main函数中循环调用中断处理函数,慢慢去跟踪,就能找到入口了

使用特权

评论回复
地板
graycker|  楼主 | 2017-8-22 11:29 | 只看该作者
zhs2007 发表于 2017-8-22 10:35
关掉中断,在main函数中循环调用中断处理函数,慢慢去跟踪,就能找到入口了 ...

非常谢谢,我再试下,之前找地方直接调用发送都不成功。一个红外触摸屏案子,因为驱动是现成的改不了了,只能这边改底层去配合上位机驱动。

使用特权

评论回复
5
graycker|  楼主 | 2017-8-22 20:21 | 只看该作者
zhs2007 发表于 2017-8-22 10:35
关掉中断,在main函数中循环调用中断处理函数,慢慢去跟踪,就能找到入口了 ...

没调出来。。能更详细点么?

使用特权

评论回复
6
zhs2007| | 2017-8-24 13:22 | 只看该作者
发送长度为0的数据包,和发送长度非0的数据包流程是一样的,只是不往TX FIFO中写数据。
C8051F单片机的USB模块相对简单,寄存器也不多。
STM32F单片机的USB模块要复杂很多,特别是STM32F4XX系列。

总的来说,这两家的USB模块底层驱动,设计的都很糟糕。
基于中断,难于分析调试,代码冗余,结构体和函数调用都是套了一层又一层,那叫一个山路十八弯!
特别是STM32F4XX的还搞了很多函数指针,压根没法分析函数是在何时从何处调用的。


使用特权

评论回复
7
graycker|  楼主 | 2017-8-24 22:32 | 只看该作者
本帖最后由 graycker 于 2017-8-26 17:46 编辑
zhs2007 发表于 2017-8-24 13:22
发送长度为0的数据包,和发送长度非0的数据包流程是一样的,只是不往TX FIFO中写数据。
C8051F单片机的USB ...

谢谢先,试过还是不行,可以发一个多个0,但发不了0字节长度数据,不懂,晚点换软硬件环境测下。
一开始是用C8051单片机做的usb项目,感觉代码比起STM32清晰多了,STM32分层的架构有他的优势,但是代码被写的太乱了,现在在ST代理做FAE。这个问题也是帮朋友调的,因为是替换硬件,上位机驱动改不了。

使用特权

评论回复
8
ningling_21| | 2017-8-25 11:10 | 只看该作者
graycker 发表于 2017-8-24 22:32
谢谢先,试过还是不行,可以发一个多个0,但发不了0字节长度数据,不懂,晚点换软硬件环境测下。
一开始 ...

C8051F的例程中应该有吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

150

帖子

2

粉丝