野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12299|回复: 3

关于USB模拟串口通信的端点状态设置函数的疑惑。

[复制链接]
发表于 2016-1-27 09:40:40 | 显示全部楼层 |阅读模式
今天研究了一下USB模拟串口,到了下面这个设置端点状态函数时,有点理解的不透彻了。比如下面的让ENdP1为有效的函数调用。

USB模拟串口函数1.jpg

这个函数的第二个参数是EP_TX_VALID(#define EP_TX_VALID    (0x0030) /* EndPoint TX VALID */)
USB模拟串口函数1_1.jpg

最后调用到下面这个函数,其参数wState就是EP_TX_VALID(0x0030),
下面的两个if语句的判断,都是为真的,也就是说每次都要把原来的状态进行反转的。怎么确定一定是反转到了有效状态呢?令人疑惑啊。
#define EPTX_DTOG1     (0x0010) /* EndPoint TX Data TOGgle bit1 */
#define EPTX_DTOG2     (0x0020) /* EndPoint TX Data TOGgle bit2 */


USB模拟串口函数2.jpg

下面是端点寄存器的状态字段的可取值。
USB模拟串口函数3.jpg

如果按照上面函数的设置,则每次都会进行反转,比如原来是00,反转后成了11,原来是01,反转后成了10,这个怎么算是有效状态?还是只要反转了状态,不管是什么状态,都可以让端点进行发送操作?我不知道是什么状态下,端点才会发送数据的。

哪位大神告知一下?多谢。

回复

使用道具 举报

发表于 2016-1-27 12:45:33 | 显示全部楼层
还没搞定 、?               
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-28 08:42:20 | 显示全部楼层
fire 发表于 2016-1-27 12:45
还没搞定 、?

火哥,程序是运行的好好的啊。我就是想彻底搞明白一下这个函数的意思啊。我没有弄明白这个函数里面的语句是什么作用。我就是想弄明白一下。呵呵。这个函数比较关键。希望明白人给我解释一下。呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-28 08:43:34 | 显示全部楼层
fire 发表于 2016-1-27 12:45
还没搞定 、?

这个设置端点为有效后,才能发送?对吧。那么这个函数是设置有效性的,怎么里面的函数体是反转发送状态的呢?这个状态决定了是否发送?还是发送后再设置的状态?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-29 21:38 , Processed in 0.032140 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表