使用STM32CubeMX创建一个USB+FATFS的TrueSTUDIO环境下的工程

发布者:sunyouz1最新更新时间:2020-05-18 来源: eefocus关键字:STM32CubeMX  USB  FATFS  TrueSTUDIO环境 手机看文章 扫描二维码
随时随地手机看文章

一、准备工具


STM32CubeMX软件;

TrueSTUDIO软件;

STM32F429BI开发板带USB接口一块。


二、USB电路图

从电路图可以看出,只有两个接口与单片机连接,虽然使用的是单片机的高速引脚,但缺少高速芯片(自行科普),只能拿高速(HS)引脚当全速(FS)引脚用。


三、使用STM32CubeMX配置USB及FATFS


1.时钟配置


我这里使用的是高速外部时钟

时钟源是8MHz的晶振

2.USB配置


选择USB_OTG_HS,配置内部PHY为主机

选择USB_HOST,配置IP为MSC(大容量存储设备)模式

3.FATFS配置


选择FATFS,配置Mode为USB Disk

支持简体中文,使能长文件名,缓存放在栈中

4.生成TrueSTUDIO工程

四、添加测试程序


需要引用的变量


extern ApplicationTypeDef Appli_state;

extern USBH_HandleTypeDef hUsbHostFS;

extern char USBHPath[4];  /* USBH logical drive path */

 

FATFS USBDISKFatFs;           /* File system object for USB disk logical drive */

FIL   MyFile;                 /* File object */

主函数中需要添加的程序


 /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

    /* USER CODE END WHILE */

    MX_USB_HOST_Process();

 

    /* USER CODE BEGIN 3 */

    switch(Appli_state)

    {

case APPLICATION_READY:

MSC_Application();

Appli_state = APPLICATION_DISCONNECT;

break;

case APPLICATION_DISCONNECT:

f_mount(NULL, "", 0);

break;

default:

break;

    }

  }

MSC_Application函数的实现


/* USER CODE BEGIN 4 */

static void MSC_Application(void)

{

    FRESULT res;                             /* FatFs function common result code */

    uint32_t byteswrite;

    uint8_t wtext[] = "hello world!";

 

    /* Register the file system object to the FatFs module */

    if(f_mount(&USBDISKFatFs, (TCHAR const*)USBHPath, 0) != FR_OK)

    {

        /* FatFs Initialization Error */

        Error_Handler();

    }

    else

    {

        /* Create and Open a new text file object with write access */

        if(f_open(&MyFile, "hello.txt", FA_CREATE_ALWAYS | FA_WRITE) != FR_OK)

        {

            /* 'STM32.TXT' file Open for write Error */

            Error_Handler();

        }

        else

        {

            res = f_write(&MyFile, wtext, sizeof(wtext), (void *)&byteswrite);

            if(byteswrite == 0 || (res != FR_OK))

            {

            Error_Handler();

            }

            else

            {

                /* Close the open text file */

                f_close(&MyFile);

            }

        }

    }

}

五、测试结果


插上优盘,经过一段时间,打开优盘查看内容如下所示

关键字:STM32CubeMX  USB  FATFS  TrueSTUDIO环境 引用地址:使用STM32CubeMX创建一个USB+FATFS的TrueSTUDIO环境下的工程

上一篇:STM32CubeMX+TrueSTUDIO开发STM32的全新方式
下一篇:HAL+Cube MX 学习之UART串口通信

推荐阅读最新更新时间:2024-11-03 04:46

ESD保护时怎样维持USB信号完整性
   USB2.0 的数据传输率达480Mbps。手机、MP3播放器和其它电子产品中,通用串行总线(USB)已经成为一项流行特性。USB使得数据在不同电子设备之间的传输更快更方便,对于那些使用 USB2.0 端口的产品而言尤为如此。 随着常见文件的大小持续增加,高数据率也变得越来越重要。在这种等级的数据率,为数据线路增加任何电容都可能造成信号波形失真,导致数字数据传输的中断和/或故障。这就对 USB2.0 接口上使用的静电放电(ESD)保护器件提出了更高的要求。ESD保护器件在正常数据传输期间必须对信号保持透明状态,而在系统级ESD兼容性测试或应用现场中遭受实际ESD事件时,必须使受保护对象免受损伤或干扰。如今,设计人员面对
[嵌入式]
USB-HOST实时数据采集嵌入式模块的实现
摘要:提出利用SL811HS和8位单片机实现USB-Host实时数据采集嵌入式模块。该系统的数据传输,遵守大规模存储协议和USB 1.1协议规范,可作为嵌入式设备的数据输入输出模块。它以文件的形式,与Slave端的USB移动存储器进行数据传输。 关键词:SL811HS USB-HOST 大规模存储协议 USB1.1 引言 随着数据采集系统、工控行业和嵌入式用户对移动存储的需求越来越大,传统的通过软盘、串行口(RS232/RS485)或以太网等传输数据的方式已不能满足当前数据存储和交换的需求。如何在嵌入式模块中实现USB移动存储已成为急需解决的问题。 本文提出利用SL811HS和8位单片机实现USB-HOST嵌入式模块的一
[应用]
USB设备驱动开发-USB协议相关(3)
  一、USB设备标准请求 USB设备标准请求是为所有USB设备定义的操作,即使设备还没有被分配地址或还没有被配置都必须相应设备标准请求。 标准特性选择子 特性选择子用于对特性使能或设置特性,若一个不支持或非法的请求发送给USB设备,设备将在数据或状态传输阶段返回STALL作为响应。若设备的默认控制通道由于错误不能通信,则设备将被reset来清除错误状态并重启默认控制通道。 1. Clear Feature wValue中的特性选择子必须和操作对象匹配,即设备特性对应设备,接口特性对应接口,端点特性对应端点。 若对应的特性不存在或不能被清除,或者操作的接口或端点不存在
[嵌入式]
一款基于USB接口的声卡
   电路原理   电路原理图如图1所示。   美国TI公司下属子公司开发了一款USB接口DAC芯片—PCM2702(IC1)。它支持USB1.0标准,可接收16bit的立体声或单声道的音频数据流,其基本参数如表1所示。IC2为集成双运放,用作输出缓冲放大。      IC1的左边为数字输入部分,右边为模拟输出部分,PCM2702的2脚要求电压为3.3V,在这里,巧妙地用一个红色发光管降压,并兼作电源指示,只要插上USB口它就会亮,并接R1是为了减轻LED的负担。R2为上拉电阻,考虑到计算机提供的电源高频纹波较大,故采用较强的滤波措施。C3~C11和C18均为电源滤波和退耦电容(所谓退耦,即防止前后电路网络电流大小
[嵌入式]
Microchip技术精英年会培训近3000名工程师
近日结束的Microchip第11届系列技术精英年会参会人数再创历史新高,近3000名嵌入式设计人员分别参加了在七个国家用四种语言举办的13场技术精英年会。 Microchip全球应用工程部副总裁Ken Pye表示:“对于没能参加我们组织的2007年技术精英年会活动的工程师和技术人员而言,Microchip培训计划还将通过当地的区域培训中心和在线研讨会为大家提供常年培训机会。” 对于年会期间585场不同规模的会议所涉及的100多个课题,参会者均给予了非常积极的反馈。为期30天的培训课程结束之后,Microchip专业指导人员发现网络连接是2872名与会工程师最关注的课题之一。培训课程涵盖了广泛的电子工程课题,包括USB嵌入式应用
[焦点新闻]
STM32——SD卡和FATFS文件系统
最近看了32的sd卡和FATFS文件系统,现在就自己的理解总结一下。 一、SD卡模块 SD 卡:安全数码卡, 它是在 MMC 的基础上发展而来, 是一种基于半导体快闪记忆器的新一代记忆设备。按容量分类,可以将SD 卡分为 3 类: SD 卡、 SDHC 卡、 SDXC 卡。SD卡(SDSC):0~2G SDHC卡:2~32G SDXC卡:32G~2T。 SD 卡一般支持 2 种操作模式: SD 卡模式(通过 SDIO 通信):允许 4 线的高速数据传输,只能使用 3.3V 的 IO 电平,所以, MCU 一定要能够支持 3.3V 的 IO 端口输出。 SPI 模式:同 SD 卡模式相比就是丧失了速度,在 SPI 模式
[单片机]
STM32——SD卡和<font color='red'>FATFS</font>文件系统
赛普拉斯USB-C 技术为三星DeX提供先进的移动计算体验
EZ-PD™控制器实现即插即用的USB-C连接和快速充电 加利福尼亚州圣何塞,2018年5月14日 - 嵌入式解决方案领导者赛普拉斯半导体公司(纳斯达克股票代码:CY)今日宣布,其USB-C技术为三星的DeX Pad带来多功能连接和快速充电能力,为三星DeX用户提供全屏幕桌面体验。三星DeX是一项为移动设备提供类似PC体验的服务。DeX Pad附件可轻松连接外围设备,如显示器、键盘和鼠标等,便于Samsung DeX的使用。赛普拉斯EZ-PD™控制器允许三星解决方案将兼容的Samsung Galaxy设备无缝连接到DeX Pad的USB-C端口,以访问外设并进行USB PD快速充电。连接后,智能手机将把类似PC的用户界面投影到
[嵌入式]
赛普拉斯<font color='red'>USB</font>-C 技术为三星DeX提供先进的移动计算体验
STM32开启USB CDC实现VCP功能
实现了一个 USB CDC的功能,让板子接收电脑端的字元控制板上 LED 的亮灭 1. 打开 CubeMx, 搜索STM32F407VG, 选中找打的芯片, 然后点击右上角的 按钮. 2 设置晶振 3. USB 点选 Device(FS),这个是开启 USB 功能 5. 打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数 编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口. span font-size:14px;white-space:normal;background-color:#ffffff; = style= overflow-wrap: bre
[单片机]
STM32开启<font color='red'>USB</font> CDC实现VCP功能
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved