XMEGA128B1直接调用USBCDC的例子

作者: shaoziyang
上传时间为: 2015-01-26 09:17 AM
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 interrupts
cpu_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

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示