我使用的是AT90usb286的AVR单片机做一个U盘,AT90USB1286有内部自带8MHz的晶振和外接16MHz的晶振,当我在熔丝位中设置使用内部8MHz的时钟时,程序我正常运行。但是当在熔丝位中设置使用外接16MHz的晶振时 ,程序不能实现正常的功能,枚举失败,原因是:在进行USB枚举过程中时,当PC机发送SETUP包给USB设备时,芯片如果接收到SETUP包,则UEIENX寄存器的RXSTPE位,即接收SETUP包中断使能位会被硬件置1,从而产生中断,进入相应的中断处理程序。我现在的情况是没有进入中断处理程序,查询RXSTPE位,也没有被硬件置1。请问各位大神,这是什么原因呢? |