您的当前位置:首页正文

圈圈教你玩USB

2022-01-31 来源:星星旅游
《圈圈教你玩USB》勘误(更新日期2009年06月29日)

28页第10行 “Read Strobe”应改为“Write Strobe”

32页,图2.3.1,USBD12芯片的10、11、12三个脚应该连在一起的。

32页,倒数第二行“连接到AT89S52的RXD和RXD引脚”应改为

“连接到AT89S52的TXD和RXD引脚”。

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

“MCU和MAX232”。

40页第1行,“自己修改一下toos.ini文件”应改为

“自己修改一下tools.ini文件”

46页第12行,“由代码可知,它生成了‘CLR A’和‘MOVE P2,A’两条指令”,

改为“由代码可知,它生成了‘CLR A’和‘MOV P2,A’两条指令”

59页图2.11.13,最后一行的“tRLDO”应改为

“tRLDD”

70页第12行“3、4分别表示端点2的输出和输入”改为

“4、5分别表示端点2的输出和输入”

77页表3.5.3第五行第二列“GEG_INTERFACE”应改为

“GET_INTERFACE”。

80页正文第8行,“USB2.0协议的bcdUSB拆成两字节就是0x00,0x20”应改为

“USB2.0协议的bcdUSB拆成两字节就是0x00,0x02”

82页 倒数第二行“0x01,” ,将逗号去掉,改为

“0x01”

84页第12行“3、4分别表示端点2的输出和输入”改为

“4、5分别表示端点2的输出和输入”

84页的24行中,“D12WriteByte(*(Buf+i)); //将数据放到数据线上”应改为

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

96页,正文第8,9,10行中:“bConfiguration”应改为

“bConfigurationValue”.

97页,续表3.9.2中第五行第二列中和正文的13行中的“iConfiguration”,应该改为

“iInterface”。

97页表3.9.3最后一项“端口的查询时间”应改为

“端点的查询时间”。

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

“端点描述符的长度为7字节”。

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

“wMaxPacketSize 大小为2字节”。

101页,第七行注释中的“bDescritporType” 应改为

“bDescriptorType”

114页第23行,“//这是一个局部条目,说明用途的最小值为3。实际上是鼠标中键”改为

“//这是一个局部条目,说明用途的最大值为3。实际上是鼠标中键”。

125页4.2节第一行,“iProduct”应改为“idProduct”

131页第12行(含空行),“//这是一个局部条目,说明用途的最小值为0xe7”改为

“//这是一个局部条目,说明用途的最大值为0xe7”

147 页第16行“所以修改bmAttributes字段为0x40……”

应改为“所以修改wMaxPacketSize字段为0x40……”

151页倒数第8行的“1字节报告ID加键盘4字节报告”应改为

“1字节报告ID加鼠标4字节报告”

154页倒数第11行,“将4.10节中的”应该改为

“将4.9节中的”

164页倒数第2行 “if(Buf[0]!=0)” 应改为

“if(Buf[1]!=0)”

234页8.1节第四行“SCSI通明命令集”改为

“SCSI透明命令集”。

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

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

“如果设置为不可移除的”

18页,软件修正,第15行,“BOOL CMyUsbHidTestAppDlg::OnDeviceChange(UINT nEventType, DWORD dwData)”

换为“BOOL CMyUsbHidTestAppDlg::OnDeviceChange(WPARAM nEventType, LPARAM dwData)”

210页,软件BUG修正,改动较大。第9~第10行中“很简单,在接收时,判断两个缓冲区是否都满了。如果两个缓冲区都满了,那么就先不清除中断标志;”整句改为“很简单,在接收时,读取完数据包后,如果发现双缓冲区中某个缓冲区依然是满的,那么就先不清除中断,直接返回;”。倒数第8行至本页结束部分“在端点2输出中断…………}”这8行全部替换为如下:

在端点2输出中断处理中,将原来的清除端点缓冲区的代码删除,并在函数返回前增加如下代码:

//当两个缓冲区中都没有数据时,才能清除中断标志 if(!(D12ReadEndpointStatus(4)&0x60)) {

//读最后发送状态,这将清除端点2输入的中断标志位 D12ReadEndpointLastStatus(4); }

257页,第7行后追加:“需要注意的是,如果读者使用的是Cepark V2.0的PCB,那么应该使用光盘中“UsbToIde(CeparkV2.0版)”下的代码。因为Cepark V2.0的这个PCB与圈圈设计的第一版PCB不一样,它将原本连接在P1、P2口的数据线移到了P0、P1口,并且将连接在74HC573上的8条数据线倒置了过来。”

因篇幅问题不能全部显示,请点此查看更多更全内容