【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
实验步骤:
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盘相关推荐
- 【iCore3 双核心板】例程十七:USB_MSC实验——读/写U盘(大容量存储器)
实验指导书及代码包下载: http://pan.baidu.com/s/1qXt1L0o iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
- 【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输
实验原理: DAM(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DAM2控制器的数据流0,选用通道0进行数据传输.通过LED的颜色来 判断传输是否成功. ...
- 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */HAL_SD_TransferStateTypedef State;/* USER CODE EN ...
- 【iCore1S 双核心板_ARM】例程十七:FSMC实验——读写FPGA
实验现象: 先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁. 核心代码: int main(void) ...
- 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
- 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验
实验现象: 核心代码: int main(void) {int i,n;char buffer[20];char spi_buffer[20];HAL_Init();system_clock.init ...
- 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验
实验现象: 核心代码: int main(void) {int i,n;char buffer[20];char i2c_buffer[20];HAL_Init();system_clock.init ...
- 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i,j;int res;float time[2];static int error_fl ...
最新文章
- 财务学习mysql_从零开始学 MySQL - 前言
- 郑风田:老美哪些地儿值得咱们?
- 论文笔记:Geo-CNN
- about Ghost Solution Suite 2.5
- python多进程编程常用到的方法
- pip——【Fatal error in launcher: Unable to create process using 】解决方案
- python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手
- 八十第五个冠军(复制和匹配的字符串)
- apex图表使用饼图居中_还在用单饼图展示Excel数据?一分钟学会制作复合饼图
- 【译】Input Method Manager (IMM):输入法管理器
- VBS 访问WMI读取IP地址,并将其设置为静态IP
- Saleh-Valenzuela 毫米波信道模型
- 基于FPGA的数据采集系统(一)
- word生成html冗余清理,如何清除WORD冗余格式代码(转)
- 港科夜闻|香港科大彭倩教授分析疫情下企业如何减低投资损失
- 深入了解新朋友——面向对象
- oracle主键必须加分区字段,oracle分区表和主键关系
- php 中文拼音模糊查询,PHP-输入字母 模糊查询汉字
- CSS(二)文字样式
- web前端--弹窗广告实现
热门文章
- 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集
- 【MFC】工具栏按钮的热点效果
- 【ARM】ARM处理器寻址方式
- [Qt教程] 第29篇 XML(三)Qt中的SAX
- pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
- Hibernate框架整合DM数据库
- VB程序逆向常用的函数
- C++中 引用与取地址的区别
- LeetCode每日一题 142. 环形链表 II
- 输出字母沙漏+对称字符串