可以看见作为鼠标的那确实多出了一个枚举成功,顺利识别成HID mouse的设备
这时候就有点遗憾,如果板子上有个加速度传感器之类的就好了,此时就可以当做鼠标了,那就比较炫了
可以考虑外接个加速度传感器之类的,或者简单点,装几个按键,模拟向左向右上下之类的移动
再来看看程序
主函数整体框架还是比较简洁的
int main(void){ irq_initialize_vectors(); cpu_irq_enable();#if !SAM0 sysclk_init(); board_init();#else system_init();#endif // Initialize the sleep manager sleepmgr_init(); ui_init(); ui_powerdown(); // Start USB stack to authorize VBus monitoring udc_start(); // The main loop manages only the power mode // because the USB management is done by interrupt while (true) {#ifdef USB_DEVICE_LOW_SPEED // No USB "Keep a live" interrupt available in low speed // to scan mouse interface then use main loop if (main_b_mouse_enable) { static volatile uint16_t virtual_sof_sub = 0; static uint16_t virtual_sof = 0; if (sysclk_get_cpu_hz()/50000 == virtual_sof_sub++) { virtual_sof_sub = 0; static uint16_t virtual_sof = 0; ui_process(virtual_sof++); } }#else /* #ifdef USB_DEVICE_LOW_SPEED */ sleepmgr_enter_sleep();#endif }}但与st的usb相比,还是比较复杂。应该也是各有特色吧,atmel尽可能使吧所有型号的框在一起尽可能兼容大多数型号的,因此程序看起来有些冗长,很多与自己无关的都想删,而st的分系列,一个系列中型号很少,兼容起来就比较方便,程序看起来很简洁
发现AS7还有个不好的地方,就是右击函数,想跳到函数定义的地方,没反应,跳不进去,不知道是我安装问题还是AS7的通病
usb初始化,usb电源设置,usb枚举。初步看下来基本一样。
后面详细分析V71 usb的枚举部分的程序