实验步骤:

1、将SD卡插在SD卡槽中。

2、将跳线冒跳至USB_Device,将USB_Device通过Micor USB线与USB主机(电脑)相连。

3、烧写程序,我的电脑中将出现一个磁盘。

实验现象:

核心代码:

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration----------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_SDIO_SD_Init();MX_USB_DEVICE_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */LED_RED_ON;LED_GREEN_OFF;LED_BLUE_OFF;HAL_Delay(500);LED_RED_OFF;LED_GREEN_ON;LED_BLUE_OFF;HAL_Delay(500);LED_RED_OFF;LED_GREEN_OFF;LED_BLUE_ON;HAL_Delay(500);        }/* USER CODE END 3 */}

/*******************************************************************************
* Function Name  : STORAGE_Read_FS
* Description    :
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
int8_t STORAGE_Read_FS (uint8_t lun, uint8_t *buf, uint32_t blk_addr,                       uint16_t blk_len)
{/* USER CODE BEGIN 6 */ uint32_t timeout = 10000;if(BSP_SD_ReadBlocks((uint32_t*)buf, blk_addr, blk_len, timeout) == USBD_OK){while(BSP_SD_GetCardState()!= MSD_OK){if (timeout-- == 0){return -1;}}}    return (USBD_OK);/* USER CODE END 6 */
}/*******************************************************************************
* Function Name  : STORAGE_Write_FS
* Description    :
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
int8_t STORAGE_Write_FS (uint8_t lun, uint8_t *buf, uint32_t blk_addr,uint16_t blk_len)
{/* USER CODE BEGIN 7 */ uint32_t timeout = 10000;if(BSP_SD_WriteBlocks((uint32_t*)buf, blk_addr, blk_len, timeout) == USBD_OK){while(BSP_SD_GetCardState()!= MSD_OK){if (timeout-- == 0){return -1;}}}        return (USBD_OK);/* USER CODE END 7 */
}

实验方法及指导书:

链接:http://pan.baidu.com/s/1eRRzMs6 密码:59vk

转载于:https://www.cnblogs.com/xiaomagee/p/7639599.html

【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘相关推荐

  1. 【iCore3 双核心板】例程十七:USB_MSC实验——读/写U盘(大容量存储器)

    实验指导书及代码包下载: http://pan.baidu.com/s/1qXt1L0o iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  2. 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM

    实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...

  3. 【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输

    实验原理: DAM(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DAM2控制器的数据流0,选用通道0进行数据传输.通过LED的颜色来 判断传输是否成功. ...

  4. 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息

    实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */HAL_SD_TransferStateTypedef State;/* USER CODE EN ...

  5. 【iCore1S 双核心板_ARM】例程十七:FSMC实验——读写FPGA

    实验现象: 先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁. 核心代码: int main(void) ...

  6. 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态

    实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...

  7. 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) {int i,n;char buffer[20];char spi_buffer[20];HAL_Init();system_clock.init ...

  8. 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) {int i,n;char buffer[20];char i2c_buffer[20];HAL_Init();system_clock.init ...

  9. 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试

    实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i,j;int res;float time[2];static int error_fl ...

最新文章

  1. 财务学习mysql_从零开始学 MySQL - 前言
  2. 郑风田:老美哪些地儿值得咱们?
  3. 论文笔记:Geo-CNN
  4. about Ghost Solution Suite 2.5
  5. python多进程编程常用到的方法
  6. pip——【Fatal error in launcher: Unable to create process using 】解决方案
  7. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手
  8. 八十第五个冠军(复制和匹配的字符串)
  9. apex图表使用饼图居中_还在用单饼图展示Excel数据?一分钟学会制作复合饼图
  10. 【译】Input Method Manager (IMM):输入法管理器
  11. VBS 访问WMI读取IP地址,并将其设置为静态IP
  12. Saleh-Valenzuela 毫米波信道模型
  13. 基于FPGA的数据采集系统(一)
  14. word生成html冗余清理,如何清除WORD冗余格式代码(转)
  15. 港科夜闻|香港科大彭倩教授分析疫情下企业如何减低投资损失
  16. 深入了解新朋友——面向对象
  17. oracle主键必须加分区字段,oracle分区表和主键关系
  18. php 中文拼音模糊查询,PHP-输入字母 模糊查询汉字
  19. CSS(二)文字样式
  20. web前端--弹窗广告实现

热门文章

  1. 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集
  2. 【MFC】工具栏按钮的热点效果
  3. 【ARM】ARM处理器寻址方式
  4. [Qt教程] 第29篇 XML(三)Qt中的SAX
  5. pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
  6. Hibernate框架整合DM数据库
  7. VB程序逆向常用的函数
  8. C++中 引用与取地址的区别
  9. LeetCode每日一题 142. 环形链表 II
  10. 输出字母沙漏+对称字符串