回答

收藏

XMEGA128B1直接调用USBCDC的例子

#其他 #其他 1582 人阅读 | 0 人回复 | 2015-01-26

前面介绍了使用cdc_stdio的例子。那个例子使用了标准的stdio做为输入输出,可以使用scanf、printf、getchar、putchar函数。
                下面在介绍直接cdc的例子。
               
                创建项目文件和添加asf的过程和前面类似,只是这次换成了cdc。
               
               
               
                config_usb.h和config_clock.h的修改也差不多,只是不用添加stdio_usb.h。
               
                主要区别在于初始化和调用的CDC函数不同,看下面的代码。
                int main (void){sysclk_init();board_init();// Initialize interrupt vector table support.irq_initialize_vectors();// Enable interruptscpu_irq_enable();udc_start();delay_init();uint8_t ch = '>';// Insert application code here, after the board has been initialized.while (true) {if(udi_cdc_is_rx_ready()){ch = udi_cdc_getc();LED_Toggle(LED0_GPIO);}udi_cdc_putc(ch);LED_Toggle(LED2_GPIO);delay_ms(200);}}               
                           
  • 初始化用udc_start()函数。                       
  • udi_cdc_is_rx_ready()函数判断收到数据                       
  • udi_cdc_getc()读取数据                       
  • udi_cdc_putc()发送数据。               
                        这只是一部分函数,更多函数可以查看一下udi_cdc.c文件。               
                       
                        GccBoardProject_CDC.zip
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条