实验现象:

核心代码:

int main(void)
{ /* USER CODE BEGIN 1 */
int i;
int j;
FIL file;
FATFS fatfs; //Âß¼­Çý¶¯Æ÷µÄ¹¤×÷Çø
static FRESULT res; //FRESULTº¯Êý¹«¹²½á¹û´úÂë
unsigned char write_buffer[]; //дÎļþ»º³åÇø
unsigned char read_buffer[]; //¶ÁÎļþ»º³åÇø
unsigned int counter; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); /* Configure the system clock */
SystemClock_Config(); /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_SDIO_SD_Init();
MX_FATFS_Init();
MX_USART1_UART_Init();
SystemClock_Config(); /* USER CODE BEGIN 2 */
usart1.printf("\x0c"); //ÇåÆÁ
usart1.printf("\033[1;32;40m"); //½«×ÖÌåÉèÖóÉÂÌÉ«
usart1.printf("\r\n\r\nhello! I am iCore1S!\r\n\r\n\r\n"); HAL_Delay();
res = f_mount(&fatfs,(TCHAR const*)SDPath,); //¹ÒÔØSD¿¨
if(res != RES_OK){
usart1.printf("f_mount error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}
else{
usart1.printf("f_mount successful!\r\n");
}
res = f_open(&file,"0:/test.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS); //´ò¿ªÇý¶¯Æ÷0ÉϵÄÔ´Îļþ
if(res != RES_OK){
usart1.printf("f_open error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}else{
usart1.printf("f_open successful!\r\n");
} res = f_lseek(&file,); //ÒÆ¶¯Ð´Ö¸Õëµ½ÎļþÊ×
if(res != RES_OK){
usart1.printf("f_lseek error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}else{
usart1.printf("f_lseek successful!\r\n");
} for(i = ;i < ;i++){
write_buffer[i] = i % ;
}
res = f_write(&file,write_buffer,sizeof(write_buffer),&counter); //½«»º³åÆ÷ÖеÄÄÚÈÝдÈëÔ´Îļþ
if(res != RES_OK || counter != ){
usart1.printf("f_write error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}else{
usart1.printf("f_write successful!\r\n");
} res = f_lseek(&file,); //ÒÆ¶¯¶ÁÖ¸Õëµ½ÎļþÊ×
if(res != RES_OK){
usart1.printf("f_lseek error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}else{
usart1.printf("f_lseek successful!\r\n");
} res = f_read(&file,read_buffer,sizeof(read_buffer),&counter);
if(res != RES_OK || counter != ){
usart1.printf("f_read error!\r\n");
while(){
HAL_Delay();
LED_RED_TOGGLE;
}
}else{
usart1.printf("f_read successful!\r\n");
}
f_close(&file); //¹Ø±ÕÔ´Îļþ usart1.printf("read data:\r\n");
for(i = ;i < ;i++){
for(j = ; j < ; j ++)
usart1.printf(" %02X",read_buffer[i*+j]);
usart1.printf("\r\n");
} /* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
HAL_Delay();
LED_GREEN_TOGGLE;
}
/* USER CODE END 3 */ }

源代码下载链接:

链接:http://pan.baidu.com/s/1c2rkKuc 密码:k4e9

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

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

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

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

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

  3. 【iCore1S 双核心板_ARM】例程六:WWDG看门狗实验——复位ARM

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

  4. 【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED

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

  5. 【iCore1S 双核心板_ARM】例程八:ADC实验——电源监控

    实验原理: STM32内部集成三个12位ADC,iCore1S的所有电源经过 电阻分压或者直接接入STM32的ADC的输出通道内,输入电流 经过高端电流检测芯片ZXCT1009F输入到ADC的输入通道 ...

  6. 【iCore1S 双核心板_ARM】例程九:DAC实验——输出直流电压

    实验原理: STM32内部集成12位DAC,可以配置成12位或8位,DAC具有两个独立转换通道, 在双DAC模式下,DA转换可被配置成独立模式或工作模式,iCore1S中DAC参考电压为 2.5V.本 ...

  7. 【iCore1S 双核心板_ARM】例程十五:USB_HID实验——双向数据传输

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

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

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

  9. 【iCore1S 双核心板_ARM】例程十九:SD_IAP_ARM实验——更新升级STM32

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

随机推荐

  1. Android应用开发-数据存储和界面展现(一)

    常见布局 相对布局(RelativeLayout) 相对布局下控件默认位置都是左上角(左对齐.顶部对齐父元素),控件之间可以重叠 可以相对于父元素上下左右对齐,相对于父元素水平居中.竖直居中.水平竖直 ...

  2. 牛客提高集训营6 C 树(树链剖分)

    题目链接 为了纪(zhuang)念(bi)写完这个树剖单独写一篇.感觉还好,也就6k嘛. 完整比赛题解:https://www.cnblogs.com/SovietPower/p/9826829.ht ...

  3. Java并发程序设计(四)JDK并发包之同步控制

    JDK并发包之同步控制 一.重入锁 重入锁使用java.util.concurrent.locks.ReentrantLock来实现.示例代码如下: public class TryReentrant ...

  4. [CC-PERMUTE]Just Some Permutations 3

    [CC-PERMUTE]Just Some Permutations 3 题目大意: \(T(T\le10^5)\)次询问,每次询问有多少长度为\(n(n\le10^6)\)的排列,满足任意相邻两个数 ...

  5. 【NOIP2014模拟赛No.1】我要的幸福

    OJ题号:ZHOJ1297 思路:搜索. 先预处理注定不能走的路径,然后dfs可以走的路径. #pragma GCC optimize ("O2") #include<cst ...

  6. Sublime text 入门学习资源篇及其基本使用方法

    Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...

  7. Android摘抄总结

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:葛小葛链接:http://www.zhihu.com/question/27069588/answer/38417756来源: ...

  8. 429. N叉树的层序遍历

    429. N叉树的层序遍历 题意 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 解题思路 和二叉树的层次遍历的思想一样: 实现 class Solution(object) ...

  9. jquery中ajax的写法

    方法一: $.ajax(url,data,fn); $('#btn').click(function(){ $.ajax({ url:"112.json", type:" ...

  10. Linux进程优先级系统——设置实时进程优先级

    前言 最近研发的产品出了点小bug,最后查到根本原因是,其中一个进程A使用基于FIFO的实时进程优先级,而另一个进程B是使用普通调度的进程优先级,而A和B两个进程是互相通信的,进程B会被饿死,而进程A ...