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