查看: 1280|回复: 0

XMEGA128B1直接调用USBCDC的例子

[复制链接]
  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-1-26 09:17:50 | 显示全部楼层 |阅读模式
    分享到:
    前面介绍了使用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
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 13:39 , Processed in 0.110232 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.