打印
[圈圈教你玩USB]

《圈圈教你玩USB》书中勘误专区

[复制链接]
51300|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
computer00|  楼主 | 2009-3-20 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
USB, ov, ni, os, pc

第40页第1行,“自己修改一下toos.ini文件”应该是“tools.ini”
第46页第12行,“由代码可知,它生成了‘CLR A’和‘MOVE P2,A’两条指令”这里MOVE不应该有E,改为“MOV P2,A”

随书赠送PCB的原理图下载:https://bbs.21ic.com/club/bbs/list.asp?boardid=67&t=3270004&tp=%5B
 
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:
下载地址2: 勘误.pdf


同时欢迎读者积极指出书中的错误。

相关帖子

沙发
xiaorunyi| | 2009-3-20 10:53 | 只看该作者

板凳

沙发

使用特权

评论回复
板凳
三块石头| | 2009-3-21 17:55 | 只看该作者

勘误-续

第114页第23行,USB鼠标例子的报告描述符
“//这是一个局部条目,说明用途的最小值为3。实际上是鼠标中键”
                                ^^^^^^
这里“最小值”应该为“最大值”,因为最小值上面一行已经定义了,而且后面的注释也是USAGE_MAXIMUM


同样,第131页第12行(含空行),USB键盘例子的报告描述符
“//这是一个局部条目,说明用途的最小值为0xe7。实际上是键盘右GUI(WIN)键”
                                ^^^^^^
同样也应该改为“最大值”


看来圈圈写程序和写书都是复制粘贴呦~~~~~这种事儿谁都容易忘改点小地方~~

使用特权

评论回复
地板
computer00|  楼主 | 2009-3-21 18:02 | 只看该作者

谢谢指出~~~同样的注释错误在代码中不少啊...汗...

使用特权

评论回复
5
xiaorunyi| | 2009-3-26 11:53 | 只看该作者

D12的

管脚英文的注释有两个相同了

使用特权

评论回复
6
芯行天下| | 2009-3-26 17:07 | 只看该作者

错误之处

第84页,第18行(含页起始处大括号单独一行和中间一个空行)
SetUsbPortOut();

没有这个函数,应该改成D12SetPortOut();

源程序中没有这个错误,在PDIUSBD12.c中第229行,是D12SetPortOut();是正确的。

使用特权

评论回复
7
computer00|  楼主 | 2009-3-26 17:21 | 只看该作者

修正第六章中USB转串口的一个软件小bug(非印刷错误)

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

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

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

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

然后重新编译之。

使用特权

评论回复
8
computer00|  楼主 | 2009-3-27 14:40 | 只看该作者

勘误

第84页的24行中,

D12WriteByte(*(Buf+i));  //将数据放到数据线上

应改为

D12SetData(*(Buf+i)); //将数据放到数据线上


光盘中代码是正确的,书稿在提交给出版社后,被他们与上面的写一字节“统一”掉了……

使用特权

评论回复
9
xiaorunyi| | 2009-3-27 19:53 | 只看该作者

33也1行

mx232-> max232

使用特权

评论回复
10
computer00|  楼主 | 2009-3-29 22:53 | 只看该作者

谢谢楼上指出。

第98页第二行“端点描述符的长度为5字节”应改为“端点描述符的长度为7字节”。

第98页第十二行“wMaxPacketSize 大小为1字节”改为“wMaxPacketSize 大小为2字节”。

第33页第一行的“MCU和MX232”漏掉一个字母A,应为“MCU和MAX232”。

使用特权

评论回复
11
三块石头| | 2009-3-30 17:47 | 只看该作者

LS

手头没书,没看出第一句话什么意思……俩一样啊

使用特权

评论回复
12
computer00|  楼主 | 2009-3-30 19:14 | 只看该作者

晕倒……又写错了,书中写的是5字节……俺赶紧改过来。

表格中是对的,但是文字描述符错了。

使用特权

评论回复
13
程序匠人| | 2009-3-31 09:05 | 只看该作者

圈圈,你还是学匠人的样,做一个表格,转成PDF,这样会比

方便大家下载

使用特权

评论回复
14
xwj| | 2009-3-31 09:32 | 只看该作者

唉... 来人,拉出去,重打100大板!

使用特权

评论回复
15
computer00|  楼主 | 2009-3-31 09:49 | 只看该作者

问题是现在才刚开始啊,等发现得差不多时,才整个表格出

不然每天要更新表格,难道不烦么?

使用特权

评论回复
16
icesongjie| | 2009-4-1 09:29 | 只看该作者

书都出了

书都出了,还怕麻烦?
怕麻烦就不应该出书

使用特权

评论回复
17
computer00|  楼主 | 2009-4-1 10:04 | 只看该作者

无语……那太没效率了。俺宁愿看场电影,也不愿做这么没

俺当初写书只花了2个多月的时间。

使用特权

评论回复
18
xiaorunyi| | 2009-4-4 15:56 | 只看该作者

匠人头上那个“真”字代表什么?

使用特权

评论回复
19
computer00|  楼主 | 2009-4-8 19:49 | 只看该作者

增加

77页表3.5.3第五行第二列“GEG_INTERFACE”应改为“GET_INTERFACE”。
97页表3.9.3最后一项“端口的查询时间”应改为“端点的查询时间”。
125页4.2节第一行,“iProduct”应改为“idProduct”
234页8.1节第四行“SCSI通明命令集”改为“SCSI透明命令集”。

使用特权

评论回复
20
computer00|  楼主 | 2009-4-10 00:04 | 只看该作者

新增勘误

242页表8.8.2第三行第二列的“RAM”应改为“RMB”,

242页倒数第二行“如果设置为不为可移除的”改为“如果设置为不可移除的”

使用特权

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

本版积分规则

246

主题

14682

帖子

206

粉丝