void main(void) { InitUART(); //串口初始化 Printc(0x0c); //清屏 Printc(0x0c); Prints("系统启动................................",1); delay(1000); //延迟 disconnect_usb(); //断开USB连接 init_usb(); //初始化USB芯片 connect_usb(); //连接USB InitTimer0(); //定时器0初始化,用来做键盘扫描,定时时间大约为5ms KeyMapCanChange=1;
while(1) { if(!USB_INT) ???????????//中断产生???????????? { read_interrupt_register(); if(Interrupt_Register.Interrupt.bus_reset){usb_bus_reset();continue;} if(Interrupt_Register.Interrupt.suspend_change){usb_bus_suspend();continue;} if(Interrupt_Register.Interrupt.control_out_port){endp0_out();continue;} if(Interrupt_Register.Interrupt.control_in_port&&usb_flags.flags.usb_endp0_in){endp0_in();continue;} // if(Interrupt_Register.Interrupt.port_out_1)endp1_out(); // if(Interrupt_Register.Interrupt.port_in_1)endp1_in(); if(Interrupt_Register.Interrupt.main_out_port){endp2_out();} if(Interrupt_Register.Interrupt.main_in_port){endp2_in();} } } }
oo这是你自己做的usb键盘的程序,我一直不知道那个中断那里是怎么往下面执行的,一定要D12向单片机发送中断信号才能往下执行,可是D12在什么情况下就会发中断信号? |