computer00
发表于 2009-3-20 10:30
《圈圈教你玩USB》书中勘误专区
<br />第40页第1行,“自己修改一下toos.ini文件”应该是“tools.ini”<br />第46页第12行,“由代码可知,它生成了‘CLR A’和‘MOVE P2,A’两条指令”这里MOVE不应该有E,改为“MOV P2,A”<br /><br />随书赠送PCB的原理图下载:<a href="https://bbs.21ic.com/club/bbs/list.asp?boardid=67&t=3270004&tp=%5B" target=_blank>https://bbs.21ic.com/club/bbs/list.asp?boardid=67&t=3270004&tp=%5B</a><br /> <br />《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:<img src="http://group.**/images/download.gif"><br />下载地址2: 勘误.pdf<br /><br /><br />同时欢迎读者积极指出书中的错误。<br />
xiaorunyi
发表于 2009-3-20 10:53
板凳
沙发
三块石头
发表于 2009-3-21 17:55
勘误-续
第114页第23行,USB鼠标例子的报告描述符<br />“//这是一个局部条目,说明用途的最小值为3。实际上是鼠标中键”<br /> ^^^^^^<br />这里“最小值”应该为“最大值”,因为最小值上面一行已经定义了,而且后面的注释也是USAGE_MAXIMUM<br /><br /><br />同样,第131页第12行(含空行),USB键盘例子的报告描述符<br />“//这是一个局部条目,说明用途的最小值为0xe7。实际上是键盘右GUI(WIN)键”<br /> ^^^^^^<br />同样也应该改为“最大值”<br /><br /><br />看来圈圈写程序和写书都是复制粘贴呦~~~~~这种事儿谁都容易忘改点小地方~~
computer00
发表于 2009-3-21 18:02
谢谢指出~~~同样的注释错误在代码中不少啊...汗...
xiaorunyi
发表于 2009-3-26 11:53
D12的
管脚英文的注释有两个相同了
芯行天下
发表于 2009-3-26 17:07
错误之处
第84页,第18行(含页起始处大括号单独一行和中间一个空行)<br />SetUsbPortOut();<br /><br />没有这个函数,应该改成D12SetPortOut();<br /><br />源程序中没有这个错误,在PDIUSBD12.c中第229行,是D12SetPortOut();是正确的。
computer00
发表于 2009-3-26 17:21
修正第六章中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 />
computer00
发表于 2009-3-27 14:40
勘误
第84页的24行中,<br /><br />D12WriteByte(*(Buf+i)); //将数据放到数据线上<br /><br />应改为<br /><br />D12SetData(*(Buf+i)); //将数据放到数据线上<br /><br /><br />光盘中代码是正确的,书稿在提交给出版社后,被他们与上面的写一字节“统一”掉了……
xiaorunyi
发表于 2009-3-27 19:53
33也1行
mx232-> max232
computer00
发表于 2009-3-29 22:53
谢谢楼上指出。
第98页第二行“端点描述符的长度为5字节”应改为“端点描述符的长度为7字节”。<br /><br />第98页第十二行“wMaxPacketSize 大小为1字节”改为“wMaxPacketSize 大小为2字节”。<br /><br />第33页第一行的“MCU和MX232”漏掉一个字母A,应为“MCU和MAX232”。<br />
三块石头
发表于 2009-3-30 17:47
LS
手头没书,没看出第一句话什么意思……俩一样啊
computer00
发表于 2009-3-30 19:14
晕倒……又写错了,书中写的是5字节……俺赶紧改过来。
表格中是对的,但是文字描述符错了。
程序匠人
发表于 2009-3-31 09:05
圈圈,你还是学匠人的样,做一个表格,转成PDF,这样会比
方便大家下载
xwj
发表于 2009-3-31 09:32
唉... 来人,拉出去,重打100大板!
computer00
发表于 2009-3-31 09:49
问题是现在才刚开始啊,等发现得差不多时,才整个表格出
不然每天要更新表格,难道不烦么?
icesongjie
发表于 2009-4-1 09:29
书都出了
书都出了,还怕麻烦?<br />怕麻烦就不应该出书
computer00
发表于 2009-4-1 10:04
无语……那太没效率了。俺宁愿看场电影,也不愿做这么没
俺当初写书只花了2个多月的时间。
xiaorunyi
发表于 2009-4-4 15:56
匠人头上那个“真”字代表什么?
computer00
发表于 2009-4-8 19:49
增加
77页表3.5.3第五行第二列“GEG_INTERFACE”应改为“GET_INTERFACE”。<br />97页表3.9.3最后一项“端口的查询时间”应改为“端点的查询时间”。<br />125页4.2节第一行,“iProduct”应改为“idProduct”<br />234页8.1节第四行“SCSI通明命令集”改为“SCSI透明命令集”。
computer00
发表于 2009-4-10 00:04
新增勘误
242页表8.8.2第三行第二列的“RAM”应改为“RMB”,<br /><br />242页倒数第二行“如果设置为不为可移除的”改为“如果设置为不可移除的”<br />