STM32 HAL库 利用CH376进行USB文件读写

        STM32 其实可以进行读取USB文件,但仅限于F4以上芯片才可以进行SUB文件读写,但在项目开发中,往往用不到此芯片,那么只能通过外挂的USB芯片进行USB文件读写,本文则是采用STM32F103的SPI与CH376进行通信,通过CH376操作指令进行操作。

1、CH376介绍

       CH376芯片 是沁恒的一款文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。同时可以使用 CH376 操作 USB 键盘鼠标,以及打印机等各种 USB 设备。

CH376 支持三种通讯接口:8 位并口、SPI 接口或者异步串口

1.1 芯片特点

●支持 1.5Mbps 低速和 12Mbps 全速 USB 通讯,兼容 USB V2.0。

● 支持 USB-HOST 主机接口和 USB-DEVICE 设备接口,支持动态切换主机方式与设备方式。

● 支持 USB 设备的控制传输、批量传输、中断传输。

● 自动检测 USB 设备的连接和断开,提供设备连接和断开的事件通知。

● 提供 6MHz 的 SPI 主机接口,支持 SD 卡以及与其协议兼容的 MMC 卡和 TF 卡等。

● 内置 USB 控制传输的协议处理器,简化常用的控制传输。

● 内置固件处理海量存储设备的专用通讯协议,支持 Bulk-Only 传输协议和 SCSI、UFI、RBC 或 等效命令集的 USB 存储设备(包括 U 盘/USB 硬盘/USB 闪存盘/USB 读卡器)。

● 内置 FAT16 和 FAT32 以及 FAT12 文件系统的管理固件,支持容量高达 32GB 的 U 盘和 SD 卡。

● 提供文件管理功能:打开、新建或删除文件、枚举和搜索文件、创建子目录、支持长文件名。

● 提供文件读写功能:以字节为最小单位或者以扇区为单位对多级子目录下的文件进行读写。

● 提供磁盘管理功能:初始化磁盘、查询物理容量、查询剩余空间、物理扇区读写。

● 提供 2MB 速度的 8 位被动并行接口,支持连接到单片机的并行数据总线。

● 提供 2MB/24MHz 速度的 SPI 设备接口,支持连接到单片机的 SPI 串行总线。

● 提供最高 3Mbps 速度的异步串口,支持连接到单片机的串行口,支持通讯波特率动态调整。

● 支持 5V 电源电压和 3.3V 电源电压以及 3V 电源电压,支持低功耗模式。

● USB 设备方式完全兼容 CH372 芯片;USB 主机方式基本兼容 CH375 芯片。

● 提供 SOP-28 和 SSOP20 无铅封装,兼容 RoHS,提供 SOP28 到 DIP28 的转换板,SOP28 封装的 引脚基本兼容 CH375 芯片。

而且CH376的文件操作与linux的文件操作相识,故在学习上可以参考。

1.2 CH376 指令

这些操作指令在后期使用过程中,将大大帮助我们进行操作。

2、STM32CUBEX配置

上述讲述了CH376的一些基本介绍,那么如何将官方给的例程文件运用到自己的工程上呢?

本次使用的单片机是STM32F103RCT6,配合使用的是STMCUBEMX进行快速开发

1、打开CubeMX

2、选择芯片

3、配置基础模式    SWD下载    晶振时钟

4、SPI通信模式设置

在进行配置时讲解一下:

在上图需要选择<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web前端-前端工程化

黑马程序员JavaWeb开发教程 文章目录 一、前后端分离开发1、介绍&#xff08;1&#xff09;前后端混合开发&#xff08;2&#xff09;、前后端分离开发 2、YAPI&#xff08;1&#xff09;介绍 二、前端工程化-环境准备1、Vue-cli&#xff08;1&#xff09;NodeJS安装教程 三、前…

【软件工程中的增量模型】

文章目录 前言什么是增量模型&#xff1f;增量模型的优点1. 风险控制2. 增量交付3. 可变性4. 提高可维护性 增量模型的缺点1. 需求变更的管理2. 集成测试的复杂性3. 可能的性能问题 前言 增量模型是一种迭代式的软件开发模型&#xff0c;注重将系统划分为多个子系统或模块&…

客服话术分享:客服如何挖掘需求?

电商客服主动挖掘询问顾客需求是非常重要的&#xff0c;这就需要我们具备一定的沟通技巧。今天这篇客服话术分享&#xff0c;很适合想提升业绩的你们哦&#xff01; 一、打招呼式询问需求&#xff1a; 1.欢迎光临&#xff0c;本店竭诚为您服务~请问您有什么具体想了解的问题吗&…

【PHP】PHP7中的引用计数

目录 一、环境二、前言三、字符串类型四、数组类型问题1:不变数组的作用是什么?问题2:为什么非空的不变数组的refcount初始值是2?五、引用类型六、参阅一、环境 PHP 7.4 二、前言 PHP的变量在底层有一个引用计数(refcount)属性,这个引用计数是为垃圾回收(GC)服务的…

力扣数据库题库学习(4.24日)

1068. 产品销售分析 I 问题链接 思路分析 编写解决方案&#xff0c;以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。返回结果表 无顺序要求 。 这个问题很简单&#xff0c;查询两张表内的指定字段。这个考的其实就是数据库的连接&am…

半字节16进制转asci

void uartTxHexByte(uint8_t Data) {uartTxByte(nibbleToHex(Data >> 4));uartTxByte(nibbleToHex(Data & 0x0F)); }uint8_t nibbleToHex(uint8_t nibble) {uint8_t ret nibble;if(nibble < 10){ret 0;}else{ret A - 10;}return(ret); }

架构师系列-MYSQL调优(六)- 排序优化

MySQL中的两种排序方式 索引排序: 通过有序索引顺序扫描直接返回有序数据额外排序: 对返回的数据进行文件排序ORDER BY优化的核心原则: 尽量减少额外的排序&#xff0c;通过索引直接返回有序数据。 索引排序 因为索引的结构是B树&#xff0c;索引中的数据是按照一定顺序进行…

janus架构学习

基础介绍 Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器&#xff0c;它支持在Linux的服务器或MacOS上的机器进行编译和安装。Janus 是使用C语言进行编写的&#xff0c;它的性能十分优秀。 架构 janus为sfu架构 模块结构图 模块说明 core模…

VR全景创业项目应该如何开展?未来有市场吗?

伴随着5G网络的发展&#xff0c;VR全景得到了众多的关注和提升。与此同时&#xff0c;各行各业都开始关注自身产业在互联网的展示效果&#xff0c;因为年轻一代的生活已经离不开互联网&#xff0c;而VR全景在互联网上的3D展示效果能给商家带来流量&#xff0c;提升营业额。 随着…

【Qt】.ui文件转.h文件

1、打开qt命令行 2、转换 uic -o ui.h mainwindow.ui

前端补充17(JS)

一、JS组成成分 JS的组成成分&#xff0c;由三部分组成 第一、ECMAScript&#xff1a;语法规则&#xff0c;如何定义变量&#xff0c;数据类型有哪些&#xff0c;如何转换数据类型&#xff0c;if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

欧美助听器市场热门品牌盘点,国产爱可声备受青睐

近年来&#xff0c;随着中国技术的不断进步和品质的提升&#xff0c;国产助听器品牌爱可声在欧美市场备受瞩目。在欧美国家助听器市场&#xff0c;有许多热门品牌分别为&#xff1a;峰力、斯达克、瑞声达、爱可声等。这些品牌凭借其悠久的历史、先进的技术和高品质的产品&#…

【人工智能基础】智能Agent

一、Agent定义 能通过传感器感知环境&#xff0c;并且能通过执行器对环境产生影响的任意事物都可以被称为Agent。 AgentAgent程序运行Agent程序的物理系统 Agent函数 从感知历史P*到动作A的一种映射f。即f:P*→A。是感知历史到行为决策这个映射的抽象描述&#xff0c;体现A…

monorepo搭建记录

最终文件效果 1、准备环境 npm pnpm 2、创建文件夹npm init vite // 名字可以为main&#xff08;自定义&#xff09; 创建主应用main npm init vite // 名字可以为main monorepo下创建文件夹web 创建辅助应用 例&#xff1a;react-demo&#xff0c;具体步骤&#xff1a;1、 cd…

HackMyVM-Hommie

目录 信息收集 arp nmap WEB web信息收集 dirsearch ftp tftp ssh连接 提权 系统信息收集 ssh提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:77:ed:84, IPv4: 192.168.9.126 Starting arp-…

前端学习<四>JavaScript——定时器

定时器的常见方法 setInterval()&#xff1a;循环调用。将一段代码&#xff0c;每隔一段时间执行一次。&#xff08;循环执行&#xff09; setTimeout()&#xff1a;延时调用。将一段代码&#xff0c;等待一段时间之后再执行。&#xff08;只执行一次&#xff09; 备注&…

【svgwrite 库简介,附代码】如何将 .ttf 字体文件转化为 .svg 矢量图形?

当涉及到字体和矢量图形时&#xff0c;.ttf 和 .svg 是两种不同的文件格式&#xff1a; .ttf (TrueType Font)&#xff1a; .ttf 文件是一种常见的字体文件格式&#xff0c;用于存储 TrueType 字体。TrueType 是一种字体轮廓的标准&#xff0c;它使用贝塞尔曲线描述字形&…

【Redis(5)】Redis哨兵模式配置示例

Redis的三种高可用方案对比参考上一篇博客&#xff1a;深入理解Redis三种高可用方案&#xff0c;以做出明智的选择&#xff0c;下面要探讨的是三种方案其中的一种。 在Redis的主从模式中&#xff0c;虽然可以从节点提供读取操作的负载均衡&#xff0c;并且作为数据的热备份&am…

IPEmotion 2024 R1支持通过USB2ETH适配器连接外部调制解调器

新发布的IPEmotion 2024 R1增加了很多新功能&#xff0c;其中最重要的新功能包括&#xff1a;支持使用USB2ETH适配器连接外部调制解调器&#xff1b;用户自定义的制冷剂可在IPEmotion PC中使用&#xff1b;支持使用XML或JSON文件为IPEconverter定义复杂的转换任务。 — 创新成果…