【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 ...
随机推荐
- mvc返回多个结果集,返回多个视图
System.Web.Mvc.ViewPage<dynamic> public ActionResult Index() { IDictionary< ...
- 潭州课堂25班:Ph201805201 并发(通信) 第十三课 (课堂笔记)
from multiprocessing import Process # 有个 url 列表 ,有5个 url ,一次请求是1秒,5个5秒 # 要求1秒把 url 请求完, a = [] # 在进程 ...
- ModelForm的使用
from django.forms import Form,ModelForm,fields,widgets as wd class QueModelForm(ModelForm): class Me ...
- BZOJ4124 : [Baltic2015]Tug of war
建立二分图,首先如果存在度数为$0$的点,那么显然无解. 如果存在度数为$1$的点,那么这个点的匹配方案固定,可以通过拓扑排序去掉所有这种点. 那么现在剩下的点度数都至少为$2$,因为左右点数相等,且 ...
- Hook Directx + CEGUI VC++
void CtestwmDlg::OnBnClickedButton1() { CStringA lpszFile; m_file.GetWindowText(lpszFile); if (lpszF ...
- Java8 利用Lambda处理List集合循环给另外一个List赋值过滤处理
1.利用stream().forEach()循环处理List; List<String> list = Lists.newArrayList();//新建一个List 用的google提供 ...
- Go语言之高级篇beego框架之model设计构造查询
一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...
- GDALSetProjection使用的一个注意事项
GDALSetProjection 简述 GDALSetProjection是用来给GDALDataset设定投影信息(坐标系统)的接口,实际上是GDALDataset::SetProjection这 ...
- jQuery实现表格行上移下移和置顶
jQuery实现表格行上移下移和置顶 我们在操作列表数据的时候,需要将数据行排列顺序进行调整,如上移和下移行,将行数据置顶等,这些操作都可以在前端通过点击按钮来完成,并且伴随着简单的动态效果,轻松实现 ...
- SCWS 中文分词_测试成功
地址: http://www.xunsearch.com/scws/index.php