《圈圈教你玩USB》书中讨论专区
《圈圈教你玩USB》一书相关技术和非技术问题请在此讨论。顶
系统怀疑我重复发帖修正第六章中USB转串口的一个小bug
在原来的程序中,虽然对端点的双缓冲区清除中断时有判断,但是还是存在着刚好读回时,双缓冲没满,但是写入时双缓冲区满的情况。这样的话就会丢失中断,导致一些数据在缓冲区拿不出来,要等下一次接收到数据时才能拿出来。<br /><br />将原来程序中的void UsbEp2Out(void)函数中的<font color=#FF0000><br />//读最后接收状态,这将清除端点2输出的中断标志位。<br />//注意端点2有个双缓冲机制,在清除中断之前,先检查是否两个缓冲区<br />//是否全满了,如果两个缓冲区全满的话,就不用清除中断标志。只有当<br />//两个缓冲区不全满的时候才需要清除中断标志。<br />if((D12ReadEndpointStatus(4)&0x60)!=0x60)<br />{<br />D12ReadEndpointLastStatus(4); <br />}</font><br />部分删除,在函数最后增加如下代码:<br /><font color=#FF0000><br />if(!(D12ReadEndpointStatus(4)&0x60)) //如果任何一个缓冲区又有数据,则不要清除中断<br />{<br />D12ReadEndpointLastStatus(4); //清除端点中断<br />}<br /></font><br />然后重新编译之。<br />听说00是学生
真的吗?好牛X200936104157113.gif昨天晚上躺床上想起个问题
没实践呢,只是空想:<br />cepark板新加的蜂鸣器是直流的还是交流的?就是说我要让他叫唤,是给个交流(PWM)还是给个直流高电平就好了?<br />应该是有源的吧,不清楚哦。程序中没用到。
有问题
我的usbmouse工程下载后还是未知设备,认不出来啊,请帮忙这个问题通常是D12没有焊好,或者是10K排阻装反了。
问圈圈个问题 ,我的板子焊好了,也能下载,但是用testboard程序测试,那个D12的id号 不是0x1012 不知道哪里出问题了 请00指教 哈 谢谢了 真的吗?好牛X200936104157113.gif我是土匪 发表于 2009-4-1 15:06 https://bbs.21ic.com/images/common/back.gif
不可能,你看他的论坛积分. 圈圈你好···我最近也买了那本书···东西已经全部焊好了···程序也可以烧了,但是靠近键盘的9个LED全部都不亮,我以为都烧了··取下来发现都是好的··而且确定都没接反···这是什么情况啊··昨天搞了一个晚上都没弄出来···有点郁闷啊··· 是不是上拉电阻没装?直接将对应的IO口对地连上,看LED亮不?如果亮,那么可能程序不对。 上拉肯定装了的···P2 = 0;这个都不对啊····额··那个IO口直接连地怎么弄啊··我是新手啊··· 00一定要救我···我现在只有LED不亮了··其他的都成功了····还有··那个电源的led都不亮··这是我最郁闷的··· 没道理呀...很有可能装反了啊... 不可能啊··我反过来试过··但是还是不亮啊··· 那就没辙了...按理说电源指示灯接对了就该亮呀...晕。 那这有可能是什么问题呢··· 00我又遇到问题了····我按书上的步骤来看到3.7节····为什么老是卡在
写端点0缓冲区2字节
0x03 0x01
这里····我把能检查的函数都检查了···就是不对啊·····圈圈觉得是哪里出问题了呢···我把圈圈的代码烧进去是完全可以用的···我已经试过了 有可能是你的电脑对时间要求比较严格,超时了??
你直接用光盘里的代码,打开调试信息看看?