使用STM32CubeMx创建U盘读写程序

24 篇文章 0 订阅
17 篇文章 1 订阅

平台

windows 7

CPU:STM32F205

软件:keil 5

下载STM32CubeMx:http://pan.baidu.com/s/1bpsvV6R

安装好后,建立usbMassClass工程,注意选择芯片。

选择自己要的功能如下图:

外部是时钟的选择:


FSUSB的选择



debug口选择UASRT1



选择USB IPcore


注意这里选择了USBDisk文件系统以及MassStorage Host。


总体芯片的配置:


细节的配置了:

时钟配置



USART、USB、USB IPCore配置


这里可以修改的,点击对应的模块,在弹出的即可配置。

生成代码:

点击菜单栏的【project】 ->【Setting】,设置工程环境,弹出如下菜单:


【project】 ->【Generate Code】即可生成代码!此代码就集成了枚举U盘过程。

具体看代码:定位到此:
/*
 * user callbak definition
*/ 
static void USBH_UserProcess  (USBH_HandleTypeDef *phost, uint8_t id)
{


  /* USER CODE BEGIN 2 */
  switch(id)
  { 
  case HOST_USER_SELECT_CONFIGURATION:
  break;
    
  case HOST_USER_DISCONNECTION:
		//printf("user HOST_USER_DISCONNECTION\r\n");
  Appli_state = APPLICATION_DISCONNECT;
  break;
    
  case HOST_USER_CLASS_ACTIVE:
		//printf("user HOST_USER_CLASS_ACTIVE\r\n");
		Appli_state = APPLICATION_READY;
  break;


  case HOST_USER_CONNECTION:
		//printf("user connetction\r\n");
		Appli_state = APPLICATION_START;
  break;


	case HOST_USER_UNRECOVERED_ERROR:
		Appli_state = APPLICATION_DISCONNECT;
	break;


  default:
  break; 
  }
  /* USER CODE END 2 */
}


改代码就是USB枚举的过程,最后阶段就是



Appli_state = APPLICATION_READY;这个阶段,这个阶段就可以对U盘的读写啦!!!


读写U盘程序:if((r=f_mount(&FS,"0", 0))!= FR_OK)//mount u盘!
if(r=f_open(fpr, USB_UPDATE_FILE, FA_READ)) != FR_OK))
open里面的文件!剩下就很简单了,就是按照应用层来写读写OK了!
对于debug UASRT不多说明,网上很多!


  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

john_liqinghan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值