完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这一文,主要是为了方便后续方便地输出调试信息和结果。
以此篇为基础,后续开发板只需要一根USB线,便可以方便地完成与PC的通信。 毕竟现在带COM口的笔记本越来越稀有了 先上一张开发板的高清图 完成本篇,需要用到如下两个函数库 conf_clock.h和main.c两部分的源码如下 ---------------------------------------------------------conf_clock.h #define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_PLL #define CONFIG_PLL0_SOURCE PLL_SRC_RC2MHZ #define CONFIG_PLL0_MUL 12 #define CONFIG_PLL0_DIV 1 #define CONFIG_SYSCLK_PSADIV SYSCLK_PSADIV_1 #define CONFIG_SYSCLK_PSBCDIV SYSCLK_PSBCDIV_1_1 // #define BOARD_XOSC_HZ 32768 // #define BOARD_XOSC_TYPE XOSC_TYPE_32KHZ // #define BOARD_XOSC_STARTUP_US 1000000 ///// USB #define CONFIG_USBCLK_SOURCE USBCLK_SRC_RCOSC #define CONFIG_OSC_RC32_CAL 48000000UL #define CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC OSC_ID_USBSOF ///// --------------------------------------------------------- ---------------------------------------------------------main.c #include void u***_send_bytes(uint8_t *buff, uint16_t bytes) { uint8_t *p = buff; uint16_t i = 0; for(; i < bytes; i++, p++) { putchar(*p); } } uint8_t u***ReveiveBytes; uint8_t u***ReceiveBuffer[200]; #include int main (void) { /* Insert system clock initialization code here (sysclk_init()). */ board_init(); sysclk_init(); /* USB */ irq_initialize_vectors(); cpu_irq_enable(); stdio_u***_init(); stdio_u***_enable(); while(true) { if(udi_cdc_is_rx_ready()) { // USB有数据送过来 /* 接收PC送来的数据 */ u***ReveiveBytes = udi_cdc_get_nb_received_data(); memset(u***ReceiveBuffer,0,200); // 缓冲区清零 udi_cdc_read_buf(u***ReceiveBuffer,u***ReveiveBytes); /* 判断数据 */ if(u***ReceiveBuffer[0] == 'A' && u***ReceiveBuffer[1] == 'B' && u***ReceiveBuffer[2] == 'C' && u***ReceiveBuffer[3] == 'D') { u***_send_bytes((uint8_t *)"OKrn",4); } else { u***_send_bytes((uint8_t *)"Errorrn",7); } } } /* Insert application code here, after the board has been initialized. */ } --------------------------------------------------------- 如果PC传来的是“ABCD”,向PC返回“OK”,否则返回“Error” 需要特别注意的是: 1、不同的ASF版本下,库函数的使用略有不同, 比如使用低版本ASF时,代码中的stdio_u***_enable();可以省略不用; 类似的情况,在其余外设驱动操作时大量存在! 因此对于一个成熟的产品,不要轻易升级旧代码中的ASF版本。 2、对于USB虚拟串口,使用串口助手输入输出时,串口助手的波特率设置 无任何影响 |
|
相关推荐
|
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
180 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
587 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
549 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
548 浏览 0 评论
1051 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 18:36 , Processed in 0.760357 second(s), Total 63, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号