幸运时时彩平台

干货

ESP32-S2开发之坑(4)--USB挖坑

分类名:经验日期:2020-05-17作者:RCSN 阅读原文

tinyusb获取 按以下readme说明进行获取

esp32s2移植

 tinyusb已经支持esp32s2,主要有设备端hid.msc,cdc。主机端目前并未做支持。

 了解一个开源库,绝多数库都会有debug  log打印,我们需要对齐debug打印,了解下tinyusb的运行情况.

实际调试中,建议配合源码,tinyusb作为小型USB协议栈,我觉得还是可以学习下。

可以看到tusb_common。h中,有对log打印的宏定义,这里0代表不需要打印,1代表出错时候打印,2代表打印debug日志。

  而打印输出函数,可以自定义也可以直接使用C库的Printf,但是前提你需要重定向,这里esp32s2都是printf重定向了串口0,我们这里就不需要自定义了。而官方默认的是1,则是出错的时候才打印,我们这里改为2,全部打印日志。然后进行编译烧写

这样打印的时候就会有出现相关初始化,以及相关枚举过程,对于要深入了解tinyusb库,是有必要开启这个debug来进行跟踪。

目前tingusb基本移植好了cdc,msc,hid三个设备到esp32s2上,这里使用的例子是cdc_msc_freertos例子,如下已经宏使能了cdcmsc


 main函数里面首先需要适配初始化板子,这里tinyusb初始化了乐鑫的esp32s2_saola板,而楼主的板子相关外设与乐鑫不同,比如LED所用不同


需要自己在bsp上新建一个port,以便适配调用相关接口。主要是board_init以及board_led_write,board_button_read。其中board_init里面也初始化了USB,这里乐鑫对于usb外设上的并没有相关文档说明,这里先不细说。Tinyusb也是基于stm32USB外设来猜测esp32s2,具体说明可以参考tinyusbpull 

例子在linuxwindow下可用,不过需要注意的点有以下:

       在判断是否串口连接与断开的时候,是以判断DTR的状态作为判断,所以不管是利用别人的串口助手,还是自己做的上位机,在打开串口的时候,需要开启DTR,tinyusb才能以此判断是否连接,关闭的时候可以关闭DTR


Cdc可以自适应波特率相关属性,在这里如果需要自己固定死波特率,可以通过以下进行改变。


  MSC上,也可以在disk文件上改变磁盘名字,以及写入相关文件。但是由于映射的是内部flash,尚未对外部flash进行映射,对于msc这块尚不清楚,楼主需要进一步搜索。



    在这里楼主验证cdc,在收发一个多小时100ms定时没出现问题,目前来说,对于esp32只有两个串口,并且还要有一个串口当debug,如此紧张的串口资源,有cdc进行补充,也是一件好事。

CDC收发效果:


关键字:ESP32-S2'、'USB
阅读原文 浏览量:1976 收藏:0
此内容由EEWORLD论坛网友 RCSN 原创,如需转载或用于商业用途需征 得作者同意并注明出处

上一篇: 电路中电能传输方向
下一篇: ESP32-S2开发之坑(5)--利用USB-CDC模拟触摸游标控制littlevgl

评论

登录 | 注册 需要登陆才可发布评论    
评论加载中......
电子工程世界版权所有 京ICP证060456号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright ? 2005-2017 sonata9.com, Inc. All rights reserved
幸运时时彩官网 大发时时彩 亿信彩票官方网站 博乐彩票 天津11选5 500万彩票 湖南快乐十分官网 小米彩票登陆 500万彩票 小米彩票官方网址