当前位置: 首页 > news >正文

做前端常用的网站及软件下载wordpress上传视频失败

做前端常用的网站及软件下载,wordpress上传视频失败,wordpress抖音,长沙手机网站制作ESP32-S3 USB虚拟串口详解 USB-OTG 外设介绍 USB-OTG#xff1a; USB-OTG是一种USB规范#xff0c;允许嵌入式系统#xff08;如手机、平板电脑、单片机系统等#xff09;在没有主机#xff08;如个人电脑#xff09;的情况下直接相互通信#xff0c;同时也能够作为传…ESP32-S3 USB虚拟串口详解 USB-OTG 外设介绍 USB-OTG USB-OTG是一种USB规范允许嵌入式系统如手机、平板电脑、单片机系统等在没有主机如个人电脑的情况下直接相互通信同时也能够作为传统USB主机或设备操作。这意味着一个带有USB-OTG功能的设备可以扮演两种角色主机角色Host和外设/设备角色Peripheral。当作为主机时它可以连接并控制其他USB设备如U盘、键盘、鼠标等作为外设时则可被主机如PC控制。USB-OTG的核心在于其双角色能力以及通过一个micro-AB插口或Type-C接口来自动协商连接设备的角色。 ESP32-S2/S3 等芯片内置 USB-OTG 外设它包含了 USB 控制器和 USB PHY支持通过 USB 线连接到 PC实现 USB Host 和 USB Device 功能。 而ESP32-S3通过USB-OTG接口就可以实现USB虚拟串口CDC-ACM类功能。 什么是USB虚拟串口 USB虚拟串口是一种可以让微控制器如ESP32-S3通过USB接口与电脑进行串口通信的技术。它的工作原理是在微控制器和电脑之间建立一个虚拟的串口通道使得电脑可以像操作串口设备一样操作USB设备。同时无需 USB 至 UART 桥便可直接烧录设备。 ESP32 IDF 的 USB 驱动库 ESP-IoT-Solution是一个包含常用外设驱动和代码框架的物联网系统解决方案。它可以作为ESP-IDF的补充组件让用户能够更轻松地进行开发。 ESP-IoT-Solution 在ESP-IoT-Solution中我们需要使用到TinyUSB这个库这是 ESP 官方为 USB 打造的一个 USB 驱动库 添加 ESP-IoT-Solution 指定组件到工程目录可直接在工程的 CMakeLists.txt 中添加以下代码 set(EXTRA_COMPONENT_DIRS ${EXTRA_COMPONENT_DIRS} ${IOT_SOLUTION_PATH}/components/{component_you_choose})或者可以复制 ESP-IoT-Solution 指定组件到工程目录直接将该组件和其依赖的组件复制粘贴至工程的 components 文件夹。 TinyUSB库API使用 我们使用ESP32-S3通过USB提供一个虚拟串口服务进而实现发送字符串然后接收并回发相同字符串的功能 1. 安装驱动程序: const tinyusb_config_t tusb_cfg {.device_descriptor NULL,.string_descriptor NULL,.external_phy false,.configuration_descriptor NULL,};// 初始化TinyUSB驱动ESP_ERROR_CHECK(tinyusb_driver_install(tusb_cfg));2. 初始化USB CDC ACM: tinyusb_config_cdcacm_t acm_cfg {.usb_dev TINYUSB_USBDEV_0,.cdc_port TINYUSB_CDC_ACM_0,.rx_unread_buf_sz 64,.callback_rx tinyusb_cdc_rx_callback, // 注册接收回调.callback_rx_wanted_char NULL,.callback_line_state_changed NULL,.callback_line_coding_changed NULL};// 初始化USB CDC ACMESP_ERROR_CHECK(tusb_cdc_acm_init(acm_cfg));3. 注册回调函数: // 回收数据的回调函数 static void tinyusb_cdc_rx_callback(uint8_t itf, uint8_t* data, uint16_t len) {ESP_LOGI(TAG, Received %d bytes of data: %.*s, len, len, data);// 尝试将接收到的数据原样回传if (tinyusb_cdc_acm_write(itf, data, len) ! ESP_OK) {ESP_LOGE(TAG, Failed to send received data back);} }tinyusb_cdcacm_register_callback(TINYUSB_CDC_ACM_0, CDC_EVENT_LINE_STATE_CHANGED, tinyusb_cdc_rx_callback)完整示例 #include esp_log.h #include esp_err.h #include tinyusb.h #include tusb_cdc_acm.hstatic const char* TAG USB_CDC;// 回收数据的回调函数 static void tinyusb_cdc_rx_callback(uint8_t itf, uint8_t* data, uint16_t len) {ESP_LOGI(TAG, Received %d bytes of data: %.*s, len, len, data);// 尝试将接收到的数据原样回传if (tinyusb_cdc_acm_write(itf, data, len) ! ESP_OK) {ESP_LOGE(TAG, Failed to send received data back);} }void tud_usb_usart(void) {ESP_LOGI(TAG, USB initialization);const tinyusb_config_t tusb_cfg {.device_descriptor NULL,.string_descriptor NULL,.external_phy false,.configuration_descriptor NULL,};// 初始化TinyUSB驱动ESP_ERROR_CHECK(tinyusb_driver_install(tusb_cfg));tinyusb_config_cdcacm_t acm_cfg {.usb_dev TINYUSB_USBDEV_0,.cdc_port TINYUSB_CDC_ACM_0,.rx_unread_buf_sz 64,.callback_rx tinyusb_cdc_rx_callback, // 注册接收回调.callback_rx_wanted_char NULL,.callback_line_state_changed NULL,.callback_line_coding_changed NULL};// 初始化USB CDC ACMESP_ERROR_CHECK(tusb_cdc_acm_init(acm_cfg));ESP_ERROR_CHECK(tinyusb_cdcacm_register_callback(TINYUSB_CDC_ACM_0, CDC_EVENT_LINE_STATE_CHANGED, tinyusb_cdc_rx_callback));ESP_LOGI(TAG, USB initialization DONE); }void app_main() {ESP_LOGI(TAG, App started);tud_usb_usart(); // 在应用程序启动时初始化USBwhile(1) {// 应用程序主循环vTaskDelay(pdMS_TO_TICKS(1000)); // 延时1秒} }总结 除了模拟串口USB-OTG 外设还有许多其他功能。 例如它可以支持连接 USB 存储设备让用户轻松扩展设备的存储容量。此外它还能作为 USB 音频设备让用户连接耳机或扬声器享受高质量音乐。另外它还支持 USB 打印机模式使用户能够直接从设备上打印文档。此外USB-OTG 还可以作为方便的文件传输工具当需要传输数据时用户可以快速共享文件。还有更多功能… 参考资料 ESP IDF USB设备驱动程序 ESP-IoT-Solution 外设/USB/设备/tusb_serial_device
http://www.hkea.cn/news/14286919/

相关文章:

  • 广告网站制作多少钱公司取名网
  • 网站开发三步东莞长安网站开发公司
  • 简述网站的建站流程全国优秀作文选官网
  • wordpress代刷网seo 的作用和意义
  • 兰州市建设局网站国贸大厦工业设计网站导航
  • 资源下载网站源码管理系统 网站模板
  • 公司网站平台建设外国人做家具的网站
  • 学做古装网站微信怎么开自己的公众号
  • tornado 网站开发网站开发过程代码问题 解决
  • 手工业网站怎么做wordpress 设置密码
  • 企业网站的制作方式网站的优化 设计
  • 校友会网站建设国家出台建设工程政策的网站
  • 单位网站建设运维情况wordpress 描述设为标题
  • 做网站为什么选择竞网智赢2022拉人头最暴利的app
  • 建网站怎么上线中国是唯一一个拥有空间站
  • 网站框架图怎么做网站网站建设
  • 网站建设合同英文wordpress指定关键词自动内链
  • 济南高新区网站建设公司网址大全2345下载
  • 网站开发教程百度云wordpress题库插件
  • 沧州市网站优化排名wordpress图片展示主题yousucai
  • 怎么做网站赚大钱外汇黄金网站建设
  • 网站技术的解决方案wordpress 重新生成缩略图
  • 肥乡企业做网站推广葫芦岛网站建设找思路
  • 做网站公司融资多少钱wordpress 标签搜索引擎
  • 葫芦岛市网站建设seo优化工具的种类
  • 茌平做网站公司工业企业解决方案
  • 建设网站翻译英文翻译网站开发研究论文
  • 全国村级网站建设网站定制的销售情况
  • 公司汇报网站建设方案网站建设需求表
  • 全国企业信用信息公示系统年报南京百度网站快速优化