【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作
实验现象:
核心代码:
- int main(void)
- {
- int i,j;
- FIL file;
- FATFS fatfs;
- static FRESULT res;
- unsigned char write_buffer[];
- unsigned char read_buffer[];
- unsigned int counter;
- system_clock.initialize();
- led.initialize();
- usart6.initialize();
- usart6.printf("\x0c");
- usart6.printf("\033[1;32;40m");
- usart6.printf("\r\nHello, I am iCore4!\r\n\r\n");
- if(BSP_SD_Init() != ){
- usart6.printf("SD ERROR!\r\n");
- while(){
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- HAL_Delay();
- }
- }else{
- usart6.printf("SD Initialize successful!\r\n");
- }
- HAL_Delay();
- res = f_mount(&fatfs,"0:",);
- if(res != RES_OK){
- usart6.printf("f_mount error!\r\n");
- while(){
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- HAL_Delay();
- }
- }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(){
- HAL_Delay();
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- }
- }else{
- usart6.printf("f_open successful!\r\n");
- }
- res = f_lseek(&file,);
- if(res != RES_OK){
- usart6.printf("f_lseek error!\r\n");
- while(){
- HAL_Delay();
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- }
- }else{
- usart6.printf("f_lseek successful!\r\n");
- }
- for(i = ;i < ;i++){
- write_buffer[i] = i % ;
- }
- res = f_write(&file,write_buffer,,&counter); //½«»º³åÆ÷ÖеÄÄÚÈÝдÈëÔ´Îļþ
- if(res != RES_OK || counter != ){
- usart6.printf("f_write error!\r\n");
- while(){
- HAL_Delay();
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- }
- }else{
- usart6.printf("f_write successful!\r\n");
- }
- res = f_lseek(&file,);
- if(res != RES_OK){
- usart6.printf("f_lseek error!\r\n");
- while(){
- HAL_Delay();
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- }
- }else{
- usart6.printf("f_lseek successful!\r\n");
- }
- res = f_read(&file,read_buffer,,&counter);
- if(res != RES_OK || counter != ){
- usart6.printf("f_read error!\r\n");
- while(){
- HAL_Delay();
- LED_RED_ON;
- HAL_Delay();
- LED_RED_OFF;
- }
- }else{
- usart6.printf("f_read successful!\r\n");
- }
- f_close(&file);
- usart6.printf("read data:\r\n");
- for(i = ;i < ;i++){
- for(j = ; j < ; j ++)
- usart6.printf(" %02X",read_buffer[i*+j]);
- usart6.printf("\r\n");
- }
- while(){
- LED_GREEN_ON;
- HAL_Delay();
- LED_GREEN_OFF;
- HAL_Delay();
- }
- }
源代码下载链接:
链接:https://pan.baidu.com/s/1jJDh134 密码:3pyh
iCore4链接:
【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作的更多相关文章
- 【iCore3 双核心板】例程十四:FATFS实验——文件操作
实验指导书及代码包下载: http://pan.baidu.com/s/1dEpechF iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore4 双核心板_ARM】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...
- 【iCore4 双核心板_ARM】例程二十四:LWIP_DHCP实验——动态分配IP地址
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...
- 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- 【iCore4 双核心板_ARM】例程十五:USB_CDC实验——高速数据传输
实验方法: 1.安装USB CDC驱动,驱动安装方法参考例程包中安装方法文档. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机 ...
- 【iCore4 双核心板_ARM】例程十六:USB_HID实验——双向数据传输
实验方法: 1.USB_HID协议免驱动,此例程不需要驱. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机软件usb_hid. ...
- 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i,j; int res; ]; ; /* USER CODE END 1 */ /* ...
- 【iCore4 双核心板_ARM】例程三十六:DAC实验——输出直流电压
实验现象: 用电压表测量PA4引脚有2.0V直流电压输出. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ / ...
- 【iCore4 双核心板_ARM】例程三十五:HTTP_IAP_ARM实验——更新升级STM32
实验现象: 核心代码: int main(void) { led.initialize(); //LED³õʼ»¯ key.initialize(); if(ARM_KEY_STATE == KEY ...
随机推荐
- 解决winscp中普通用户无法上传、删除、移动文件
上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些pe ...
- 不一样的go语言-构建系统与构件系统
前言 代码的最后一步是构建成计算机可识别的二进制数据,然后才得以在计算机上运行.如果你曾经写过有点规模(至少数十个以上独立的源文件,且需要依赖第三方包)C语言项目,必定对C语言项目的构建过程印象深 ...
- 关于Git的总结
首先我们先看一张图: 首先我们必须要先理解这几个概念:暂存区,本地仓库,远程仓库 暂存区:这个是我们每一次进行代码修改的地方,例如我们ieda的所编译的代码就是缓存区 本地仓库:是我们每一次pull, ...
- CNN做序列标注问题(tensorflow)
一.搭建简单的CNN做序列标注代码 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt TIME_ST ...
- Codeforces.842D.Vitya and Strange Lesson(Trie xor)
题目链接 /* 异或只有两种情况,可以将序列放到01Tire树上做 在不异或的情况下在Tire上查找序列的mex很容易,从高位到低位 如果0位置上数没有满,则向0递归:否则向1 (0位置上的数都满了 ...
- Python3科学计算库概况
Python3科学计算常见库入门 Numpy快速数据处理库 参见我的博客 http://www.cnblogs.com/brightyuxl/p/8981294.html http://www.cnb ...
- spring源码分析系列 (5) spring BeanFactoryPostProcessor拓展类PropertyPlaceholderConfigurer、PropertySourcesPlaceholderConfigurer解析
更多文章点击--spring源码分析系列 主要分析内容: 1.拓展类简述: 拓展类使用demo和自定义替换符号 2.继承图UML解析和源码分析 (源码基于spring 5.1.3.RELEASE分析) ...
- C#高级编程9 第16章 错误和异常
C#高级编程9 第16章 错误和异常 了解这章可以学会如何处理系统异常以及错误信息. System.Exception类是.NET运行库抛出的异常,可以继承它定义自己的异常类. try块代码包含的代码 ...
- AngularJS中的$http缓存以及处理多个$http请求
在AngularJS的实际项目中,经常需要处理多个$http请求,每个$http请求返回一个promise,我们可以把多个promise放到$q.all()方法接受的一个数组实参中去. ■ 处理多个$ ...
- Javascript:自己写模板引擎
背景 因为JS没有提供“字符串插入”和“多行字符串”特性,传统的拼凑字符串容易出错.性能不高和不容易理解代码,为了应对这些问题,很多个人和团队开发了模板引擎,现在主流的JS框架几乎都提供此类功能了. ...