实验现象:

核心代码:

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. php手撸轻量级开发(一)

    聊聊本文内容 之前讲过php简单的内容,但是原生永远是不够看的,这次用框架做一些功能性的事情. 但是公司用自己的框架不能拿出来,用了用一些流行的框架比如tp,larveral之类的感觉太重,CI也不顺 ...

  2. N=NP?

    #include<stdio.h> ],b[]; int len(char a[]) { ; while(a[i]!='\0') ++i; return i; } int who(char ...

  3. QT-1-环境搭建QT5.4.1&MinGW4.9.1

    1.最近在电脑上尝试了搭建QT的环境,原本准备利用VS2013+QT5.51环境,虽然安装很容易但是部署程序时,我是没能做到部署到其他机器,原因还是DLL搞不定: 2.参考友善之臂的MiniTools ...

  4. AGC 019F.Yes or No(思路 组合)

    题目链接 \(Description\) 一共有\(n+m\)道判断题,其中有\(n\)个答案为"YES",\(m\)个为"NO".现在以随机顺序给你这\(n+ ...

  5. java显示树结构

    /** * 显示多颗树的所有节点的信息 * * @param departmentList */ private void showTreeList(Collection<Department& ...

  6. 20172302 《Java软件结构与数据结构》第二周学习总结

    2018年学习总结博客总目录:第一周 第二周 教材学习内容总结 第三章 集合概述-栈 3.1 集合 (1) 集合是一种聚集,组织了其他对象的对象.它定义一张破那个特定的方式,可以访问.管理所包含的对象 ...

  7. mysql安装后不是内部或外部命令解决

    在环境变量中配置mysql的bin 怎么找到bin目录,在管理工具,服务,常规选项卡下找到 双击mysql后,常规选项卡下的路径就是bin的路径,然后把该路径配置到环境变量中,即可,然后net sta ...

  8. oracle多个结果集拼接字符串;where id in 字符串 (转)

    转自:http://blog.sina.com.cn/s/blog_af26e333010194ht.html 最近修改oracle触发器,在过程中遇到两个问题: select lastname fr ...

  9. JAVA中String类常用方法 I

    String类常用方法有: int length() -– 返回当前字符串的长度 int indexOf(int ch) -– 查找ch字符在该字符串中第一次出现的位置 int indexOf(Str ...

  10. 动态ip、静态ip、pppoe拨号的区别

    pppoe拨号 pppoe拨号上网,又叫做ADSL拨号上网.宽带拨号上网.指现在有很多我的E家用户,送的无线猫,阉割了PPPOE拨号功能,必须要从电脑上拨号才能上网.还有大街上的WIFI热点也很多,如 ...