打印
[圈圈教你玩USB]

《圈圈教你玩USB》书中讨论专区

[复制链接]
72579|80
手机看帖
扫描二维码
随时随地手机跟帖
沙发
xiaorunyi| | 2009-3-20 10:53 | 只看该作者

系统怀疑我重复发帖

使用特权

评论回复
板凳
computer00|  楼主 | 2009-3-26 17:18 | 只看该作者

修正第六章中USB转串口的一个小bug

在原来的程序中,虽然对端点的双缓冲区清除中断时有判断,但是还是存在着刚好读回时,双缓冲没满,但是写入时双缓冲区满的情况。这样的话就会丢失中断,导致一些数据在缓冲区拿不出来,要等下一次接收到数据时才能拿出来。

将原来程序中的void UsbEp2Out(void)函数中的
//读最后接收状态,这将清除端点2输出的中断标志位。
//注意端点2有个双缓冲机制,在清除中断之前,先检查是否两个缓冲区
//是否全满了,如果两个缓冲区全满的话,就不用清除中断标志。只有当
//两个缓冲区不全满的时候才需要清除中断标志。
if((D12ReadEndpointStatus(4)&0x60)!=0x60)
{
D12ReadEndpointLastStatus(4); 
}

部分删除,在函数最后增加如下代码:

if(!(D12ReadEndpointStatus(4)&0x60)) //如果任何一个缓冲区又有数据,则不要清除中断
{
D12ReadEndpointLastStatus(4); //清除端点中断
}

然后重新编译之。

使用特权

评论回复
地板
我是土匪| | 2009-4-1 15:06 | 只看该作者

听说00是学生

真的吗?好牛X

使用特权

评论回复
5
三块石头| | 2009-4-3 15:08 | 只看该作者

昨天晚上躺床上想起个问题

没实践呢,只是空想:
cepark板新加的蜂鸣器是直流的还是交流的?就是说我要让他叫唤,是给个交流(PWM)还是给个直流高电平就好了?

使用特权

评论回复
6
computer00|  楼主 | 2009-4-4 22:03 | 只看该作者

应该是有源的吧,不清楚哦。程序中没用到。

使用特权

评论回复
7
lgvictor| | 2009-4-11 18:55 | 只看该作者

有问题

我的usbmouse工程下载后还是未知设备,认不出来啊,请帮忙

使用特权

评论回复
8
computer00|  楼主 | 2009-4-13 00:48 | 只看该作者

这个问题通常是D12没有焊好,或者是10K排阻装反了。

使用特权

评论回复
9
bingdele| | 2009-11-25 20:38 | 只看该作者
问圈圈个问题 ,我的板子焊好了,也能下载,但是用testboard程序测试,那个D12的id号 不是0x1012 不知道哪里出问题了 请00指教 哈 谢谢了

使用特权

评论回复
10
calm_lrc| | 2009-12-7 09:50 | 只看该作者
真的吗?好牛X200936104157113.gif
我是土匪 发表于 2009-4-1 15:06

不可能,你看他的论坛积分.

使用特权

评论回复
11
cain.lee| | 2009-12-10 11:21 | 只看该作者
圈圈你好···我最近也买了那本书···东西已经全部焊好了···程序也可以烧了,但是靠近键盘的9个LED全部都不亮,我以为都烧了··取下来发现都是好的··而且确定都没接反···这是什么情况啊··昨天搞了一个晚上都没弄出来···有点郁闷啊···

使用特权

评论回复
12
computer00|  楼主 | 2009-12-10 13:48 | 只看该作者
是不是上拉电阻没装?直接将对应的IO口对地连上,看LED亮不?如果亮,那么可能程序不对。

使用特权

评论回复
13
cain.lee| | 2009-12-11 12:43 | 只看该作者
上拉肯定装了的···P2 = 0;这个都不对啊····额··那个IO口直接连地怎么弄啊··我是新手啊···

使用特权

评论回复
14
cain.lee| | 2009-12-13 19:51 | 只看该作者
00一定要救我···我现在只有LED不亮了··其他的都成功了····还有··那个电源的led都不亮··这是我最郁闷的···

使用特权

评论回复
15
computer00|  楼主 | 2009-12-14 13:00 | 只看该作者
没道理呀...很有可能装反了啊...

使用特权

评论回复
16
cain.lee| | 2009-12-14 15:47 | 只看该作者
不可能啊··我反过来试过··但是还是不亮啊···

使用特权

评论回复
17
computer00|  楼主 | 2009-12-15 08:39 | 只看该作者
那就没辙了...按理说电源指示灯接对了就该亮呀...晕。

使用特权

评论回复
18
cain.lee| | 2009-12-17 21:35 | 只看该作者
那这有可能是什么问题呢···

使用特权

评论回复
19
cain.lee| | 2009-12-20 15:59 | 只看该作者
00我又遇到问题了····我按书上的步骤来看到3.7节····为什么老是卡在
写端点0缓冲区2字节
0x03 0x01

这里····我把能检查的函数都检查了···就是不对啊·····圈圈觉得是哪里出问题了呢···我把圈圈的代码烧进去是完全可以用的···我已经试过了

使用特权

评论回复
20
computer00|  楼主 | 2009-12-21 13:42 | 只看该作者
有可能是你的电脑对时间要求比较严格,超时了??
你直接用光盘里的代码,打开调试信息看看?

使用特权

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

本版积分规则

246

主题

14682

帖子

206

粉丝