实验现象:

核心代码:

  1. int main(void)
  2. {
  3. int i,j;
  4. FIL file;
  5. FATFS fatfs;
  6. static FRESULT res;
  7. unsigned char write_buffer[];
  8. unsigned char read_buffer[];
  9. unsigned int counter;
  10.  
  11. system_clock.initialize();
  12. led.initialize();
  13. usart6.initialize();
  14. usart6.printf("\x0c");
  15. usart6.printf("\033[1;32;40m");
  16. usart6.printf("\r\nHello, I am iCore4!\r\n\r\n");
  17. if(BSP_SD_Init() != ){
  18. usart6.printf("SD ERROR!\r\n");
  19. while(){
  20. LED_RED_ON;
  21. HAL_Delay();
  22. LED_RED_OFF;
  23. HAL_Delay();
  24. }
  25. }else{
  26. usart6.printf("SD Initialize successful!\r\n");
  27. }
  28.  
  29. HAL_Delay();
  30. res = f_mount(&fatfs,"0:",);
  31. if(res != RES_OK){
  32. usart6.printf("f_mount error!\r\n");
  33. while(){
  34. LED_RED_ON;
  35. HAL_Delay();
  36. LED_RED_OFF;
  37. HAL_Delay();
  38. }
  39. }else{
  40. usart6.printf("f_mount successful!\r\n");
  41. }
  42.  
  43. res = f_open(&file,"0:/SD¿¨²âÊÔ.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);//´ò¿ªÇý¶¯Æ÷0ÉϵÄÔ´Îļþ
  44. if(res != RES_OK){
  45. usart6.printf("f_open error!\r\n");
  46. while(){
  47. HAL_Delay();
  48. LED_RED_ON;
  49. HAL_Delay();
  50. LED_RED_OFF;
  51. }
  52. }else{
  53. usart6.printf("f_open successful!\r\n");
  54. }
  55.  
  56. res = f_lseek(&file,);
  57. if(res != RES_OK){
  58. usart6.printf("f_lseek error!\r\n");
  59. while(){
  60. HAL_Delay();
  61. LED_RED_ON;
  62. HAL_Delay();
  63. LED_RED_OFF;
  64. }
  65. }else{
  66. usart6.printf("f_lseek successful!\r\n");
  67. }
  68.  
  69. for(i = ;i < ;i++){
  70. write_buffer[i] = i % ;
  71. }
  72.  
  73. res = f_write(&file,write_buffer,,&counter); //½«»º³åÆ÷ÖеÄÄÚÈÝдÈëÔ´Îļþ
  74. if(res != RES_OK || counter != ){
  75. usart6.printf("f_write error!\r\n");
  76. while(){
  77. HAL_Delay();
  78. LED_RED_ON;
  79. HAL_Delay();
  80. LED_RED_OFF;
  81. }
  82. }else{
  83. usart6.printf("f_write successful!\r\n");
  84. }
  85.  
  86. res = f_lseek(&file,);
  87. if(res != RES_OK){
  88. usart6.printf("f_lseek error!\r\n");
  89. while(){
  90. HAL_Delay();
  91. LED_RED_ON;
  92. HAL_Delay();
  93. LED_RED_OFF;
  94. }
  95. }else{
  96. usart6.printf("f_lseek successful!\r\n");
  97. }
  98.  
  99. res = f_read(&file,read_buffer,,&counter);
  100. if(res != RES_OK || counter != ){
  101. usart6.printf("f_read error!\r\n");
  102. while(){
  103. HAL_Delay();
  104. LED_RED_ON;
  105. HAL_Delay();
  106. LED_RED_OFF;
  107. }
  108. }else{
  109. usart6.printf("f_read successful!\r\n");
  110. }
  111. f_close(&file);
  112.  
  113. usart6.printf("read data:\r\n");
  114. for(i = ;i < ;i++){
  115. for(j = ; j < ; j ++)
  116. usart6.printf(" %02X",read_buffer[i*+j]);
  117. usart6.printf("\r\n");
  118. }
  119.  
  120. while(){
  121. LED_GREEN_ON;
  122. HAL_Delay();
  123. LED_GREEN_OFF;
  124. HAL_Delay();
  125. }
  126. }

源代码下载链接:

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

iCore4链接:

【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作的更多相关文章

  1. 【iCore3 双核心板】例程十四:FATFS实验——文件操作

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

  2. 【iCore4 双核心板_ARM】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...

  3. 【iCore4 双核心板_ARM】例程二十四:LWIP_DHCP实验——动态分配IP地址

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

  4. 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...

  5. 【iCore4 双核心板_ARM】例程十五:USB_CDC实验——高速数据传输

    实验方法: 1.安装USB CDC驱动,驱动安装方法参考例程包中安装方法文档. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机 ...

  6. 【iCore4 双核心板_ARM】例程十六:USB_HID实验——双向数据传输

    实验方法: 1.USB_HID协议免驱动,此例程不需要驱. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机软件usb_hid. ...

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

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

  8. 【iCore4 双核心板_ARM】例程三十六:DAC实验——输出直流电压

    实验现象: 用电压表测量PA4引脚有2.0V直流电压输出. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ / ...

  9. 【iCore4 双核心板_ARM】例程三十五:HTTP_IAP_ARM实验——更新升级STM32

    实验现象: 核心代码: int main(void) { led.initialize(); //LED³õʼ»¯ key.initialize(); if(ARM_KEY_STATE == KEY ...

随机推荐

  1. 解决winscp中普通用户无法上传、删除、移动文件

    上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些pe ...

  2. 不一样的go语言-构建系统与构件系统

    前言   代码的最后一步是构建成计算机可识别的二进制数据,然后才得以在计算机上运行.如果你曾经写过有点规模(至少数十个以上独立的源文件,且需要依赖第三方包)C语言项目,必定对C语言项目的构建过程印象深 ...

  3. 关于Git的总结

    首先我们先看一张图: 首先我们必须要先理解这几个概念:暂存区,本地仓库,远程仓库 暂存区:这个是我们每一次进行代码修改的地方,例如我们ieda的所编译的代码就是缓存区 本地仓库:是我们每一次pull, ...

  4. CNN做序列标注问题(tensorflow)

    一.搭建简单的CNN做序列标注代码 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt TIME_ST ...

  5. Codeforces.842D.Vitya and Strange Lesson(Trie xor)

    题目链接 /* 异或只有两种情况,可以将序列放到01Tire树上做 在不异或的情况下在Tire上查找序列的mex很容易,从高位到低位 如果0位置上数没有满,则向0递归:否则向1 (0位置上的数都满了 ...

  6. Python3科学计算库概况

    Python3科学计算常见库入门 Numpy快速数据处理库 参见我的博客 http://www.cnblogs.com/brightyuxl/p/8981294.html http://www.cnb ...

  7. spring源码分析系列 (5) spring BeanFactoryPostProcessor拓展类PropertyPlaceholderConfigurer、PropertySourcesPlaceholderConfigurer解析

    更多文章点击--spring源码分析系列 主要分析内容: 1.拓展类简述: 拓展类使用demo和自定义替换符号 2.继承图UML解析和源码分析 (源码基于spring 5.1.3.RELEASE分析) ...

  8. C#高级编程9 第16章 错误和异常

    C#高级编程9 第16章 错误和异常 了解这章可以学会如何处理系统异常以及错误信息. System.Exception类是.NET运行库抛出的异常,可以继承它定义自己的异常类. try块代码包含的代码 ...

  9. AngularJS中的$http缓存以及处理多个$http请求

    在AngularJS的实际项目中,经常需要处理多个$http请求,每个$http请求返回一个promise,我们可以把多个promise放到$q.all()方法接受的一个数组实参中去. ■ 处理多个$ ...

  10. Javascript:自己写模板引擎

    背景 因为JS没有提供“字符串插入”和“多行字符串”特性,传统的拼凑字符串容易出错.性能不高和不容易理解代码,为了应对这些问题,很多个人和团队开发了模板引擎,现在主流的JS框架几乎都提供此类功能了. ...