刚学usb方面的东西,得到一个C51的SL811HS的读写U盘的程序,现有些疑问,希望高手能给些解答,不甚感激: 
先是一些一些宏: 
#define SL811_ADDR ((unsigned char *) 0x024000) 
#define SL811_COMM ((unsigned char *) 0x024001) 
#define SL811_USBA_Control      0x00 
然后 
SL811_ADDR[0] = SL811_Control;    
SL811_COMM[0] = 0x08;      
我看注解的意思好像就是往0x00地址写入0x08,但从程序本身来看应该是0x24000地址写入0x00,0x024001地址写入0x08,这根本和注释不是一回事啊,况且51的寻址空间只有0000-FFFF,所以我觉得这个程序本身就有错误,我又回头去看SL811手册读写寄存器的操作,当A0为低时写入地址,A0=1时再写入数据,我的理解应该是这样就可以的: 
 #define SL811_USBA_Control      0x00 
int *p=SL811_USBA_Control ; 
*p=0x08; 
本人菜鸟,希望希望高手能指点一二! 
 |