实验现象:

核心代码:

int main(void)
{    int i,j;FIL file;FATFS fatfs;static FRESULT res;unsigned char write_buffer[512];                                      unsigned char read_buffer[512];                                       unsigned int counter;system_clock.initialize();                                                                                        led.initialize();                                                                                                usart6.initialize(115200);                                                                                  usart6.printf("\x0c");                                                             usart6.printf("\033[1;32;40m");                                                 usart6.printf("\r\nHello, I am iCore4!\r\n\r\n");                                     if(BSP_SD_Init() != 0){usart6.printf("SD ERROR!\r\n");while(1){LED_RED_ON;HAL_Delay(500);LED_RED_OFF;HAL_Delay(500);}}else{usart6.printf("SD Initialize successful!\r\n");}
HAL_Delay(500);res = f_mount(&fatfs,"0:",1);if(res != RES_OK){usart6.printf("f_mount error!\r\n");while(1){LED_RED_ON;HAL_Delay(500);LED_RED_OFF;HAL_Delay(500);            }}else{usart6.printf("f_mount successful!\r\n");}
res = f_open(&file,"0:/SD¿¨²âÊÔ.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);//´ò¿ªÇý¶¯Æ÷0ÉϵÄÔ´Îļþif(res != RES_OK){usart6.printf("f_open error!\r\n");while(1){HAL_Delay(500);LED_RED_ON;HAL_Delay(500);LED_RED_OFF;}        }else{usart6.printf("f_open successful!\r\n");}res = f_lseek(&file,0);                                               if(res != RES_OK){usart6.printf("f_lseek error!\r\n");while(1){HAL_Delay(500);LED_RED_ON;HAL_Delay(500);LED_RED_OFF;}                }else{usart6.printf("f_lseek successful!\r\n");}for(i = 0;i < 512;i++){write_buffer[i] = i % 256;}
res = f_write(&file,write_buffer,512,&counter);                       //½«»º³åÆ÷ÖеÄÄÚÈÝдÈëÔ´Îļþif(res != RES_OK || counter != 512){usart6.printf("f_write error!\r\n");while(1){HAL_Delay(500);LED_RED_ON;HAL_Delay(500);LED_RED_OFF;}    }else{usart6.printf("f_write successful!\r\n");    }
res = f_lseek(&file,0);                                                  if(res != RES_OK){usart6.printf("f_lseek error!\r\n");while(1){HAL_Delay(500);LED_RED_ON;HAL_Delay(500);LED_RED_OFF;}                }else{usart6.printf("f_lseek successful!\r\n");}
res = f_read(&file,read_buffer,512,&counter);if(res != RES_OK || counter != 512){usart6.printf("f_read error!\r\n");while(1){HAL_Delay(500);LED_RED_ON;HAL_Delay(500);LED_RED_OFF;}    }else{usart6.printf("f_read successful!\r\n");}f_close(&file);    usart6.printf("read data:\r\n");for(i = 0;i < 32;i++){for(j = 0; j < 16; j ++)usart6.printf(" %02X",read_buffer[i*16+j]);usart6.printf("\r\n");}    while(1){LED_GREEN_ON;HAL_Delay(500);LED_GREEN_OFF;HAL_Delay(500);            }
}

源代码下载链接:

链接:https://pan.baidu.com/s/1jJDh134 密码:3pyh

iCore4链接:

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

【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作相关推荐

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

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

  2. 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输

    实验现象: 核心代码: int main(void) { system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯led.initialize(); //LED³õʼ» ...

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

    实验方法: 1.将跳线冒跳至USB_UART,通过Micro USB 线将iCore4 USB-UART接口与电脑相连. 2.打开PUTTY软件. 3.通过读U盘转接线将U盘(或者读卡器)与iCore ...

  4. 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...

  5. 【iCore4 双核心板_ARM】例程二十三:LWIP_HTTP实验——网页服务器

    实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...

  6. 【iCore4 双核心板_ARM】例程十一:DMA实验——存储器到存储器的传输

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

  7. 【iCore4 双核心板_ARM】例程一:ARM驱动三色LED

    实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PB2接红色LED(ARM_LEDR), 引脚PA9接蓝色LED(ARM_LEDB),引脚PA10接绿色LED(ARM_LEDG),   ...

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

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

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

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

  10. 【iCore4 双核心板_FPGA】例程十六:基于双口RAM的ARM+FPGA数据存取实验

    实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i;int address,data;char error_flag = 0;char r ...

最新文章

  1. Unity,WebGL, 页面JS调用Unity方法
  2. 《PHP精粹:编写高效PHP代码》——第1章面向对象编程
  3. ASP.NET Core 1.0 开发记录
  4. VS.NET提示试图运行项目时出错:无法启动调试。绑定句柄无效解决办法
  5. 安装、卸载、查看软件时常用的命令
  6. 网络多人游戏架构pdf_21秒看尽ImageNet屠榜模型,60+模型架构同台献艺
  7. Java开发者值得关注的十个技术博客
  8. 赋值语句、变量、数学表达式、位运算详解(C++)
  9. golang 查询mysql_Golang查询MySQL数据库
  10. java web在线购物_JAVAWEB网上商城购物系统
  11. 编程语言的执行方式、静态语言和脚本语言
  12. java byte(字节)根据长度转成kb(千字节)和mb(兆字节)
  13. 添加网络计算机后打印乱码,Windows7系统打印机无法打印出现乱码的解决方法
  14. E罗斯宝藏网站,收藏起来一定用的到!
  15. Docker Swarm 维护模式
  16. Android Studio 类微信界面的制作
  17. 怎么修复SONY索尼相机摄像机断电死机损坏的MP4视频文件
  18. 励销云全流程智能销售解决方案,助力B2B企业高效增长
  19. python npv 计算公式_Python numpy 中常用的数据运算
  20. Medicare Fraud Detection using Machine Learning

热门文章

  1. 使用systemd管理程序进程
  2. spring boot2整合dubbox全注解
  3. `ECS弹性计算服务
  4. ASP.NET理论知识及面试题
  5. slf4j log4j logback关系详解和相关用法
  6. contenteditable
  7. 安全测试 - XSS如何防御
  8. c# json转换实例
  9. Note for Consulting Handbook3
  10. 基于SWT的Sash和FormLayout的自定义分隔窗体