zoukankan      html  css  js  c++  java
  • 【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作

    实验现象:

    核心代码:

    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("33[1;32;40m");                                                 
        usart6.printf("
    Hello, I am iCore4!
    
    ");                                     
        if(BSP_SD_Init() != 0){
            usart6.printf("SD ERROR!
    ");
            while(1){
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
                HAL_Delay(500);
            }
        }else{
            usart6.printf("SD Initialize successful!
    ");
        }
    
        HAL_Delay(500);
        res = f_mount(&fatfs,"0:",1);
        if(res != RES_OK){
            usart6.printf("f_mount error!
    ");
            while(1){
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
                HAL_Delay(500);            
            }
        }else{
            usart6.printf("f_mount successful!
    ");
        }
    
        res = f_open(&file,"0:/SD¿¨²âÊÔ.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);//´ò¿ªÇý¶¯Æ÷0ÉϵÄÔ´Îļþ
        if(res != RES_OK){
            usart6.printf("f_open error!
    ");
            while(1){
                HAL_Delay(500);
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
            }        
        }else{
            usart6.printf("f_open successful!
    ");
        }
        
        res = f_lseek(&file,0);                                               
        if(res != RES_OK){
            usart6.printf("f_lseek error!
    ");
            while(1){
                HAL_Delay(500);
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
            }                
        }else{
            usart6.printf("f_lseek successful!
    ");
        }
        
        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!
    ");
            while(1){
                HAL_Delay(500);
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
            }    
        }else{
            usart6.printf("f_write successful!
    ");    
        }    
    
        res = f_lseek(&file,0);                                                  
        if(res != RES_OK){
            usart6.printf("f_lseek error!
    ");
            while(1){
                HAL_Delay(500);
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
            }                
        }else{
            usart6.printf("f_lseek successful!
    ");
        }
    
        res = f_read(&file,read_buffer,512,&counter);
        if(res != RES_OK || counter != 512){
            usart6.printf("f_read error!
    ");
            while(1){
                HAL_Delay(500);
                LED_RED_ON;
                HAL_Delay(500);
                LED_RED_OFF;
            }    
        }else{
            usart6.printf("f_read successful!
    ");
        }
        f_close(&file);    
      
        usart6.printf("read data:
    ");
        for(i = 0;i < 32;i++){
            for(j = 0; j < 16; j ++)
                usart6.printf(" %02X",read_buffer[i*16+j]);
            usart6.printf("
    ");
        }    
        
        while(1){
            LED_GREEN_ON;
            HAL_Delay(500);
            LED_GREEN_OFF;
            HAL_Delay(500);            
        }    
    }

    源代码下载链接:

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

    iCore4链接:

  • 相关阅读:
    springboot Quartz 定时任务工具类
    java 发邮件 代码
    spring boot 整合 shiro 权限框架
    java 读取xml
    flowable 报错 Waiting for changelog lock....
    微服务 springcloud Alibaba 阿里组件 项目源码
    Java 读取汉字拼音
    syslog how to
    c++ 字符串总结
    aptget 总结
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/7451367.html
Copyright © 2011-2022 走看看