OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 655|回复: 0

在使用官方例程做SD-FatFs实验时卡死,请各位前辈斧正

[复制链接]

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2019-8-31
在线时间
55 小时
发表于 2024-5-27 21:39:19 | 显示全部楼层 |阅读模式
10金钱
使用M100Z-STM32F103版本的开发板,在官方例程的基础下修改了一下,发现SD卡可以初始化成功,也能读到SD卡里面的文件数据。但是不能写,使用f_open()创建
txt文件,返回的是F_OK,但是文件并没有被创建,在f_write处卡住了。因此想请教一下各位前辈有可能是什么问题导致的,在此谢过。

捕获.JPG
代码如下:
FIL f_log;

uint32_t num = 0;

FRESULT res;

int main(void)
{

    uint32_t total;
    uint32_t free;

    HAL_Init();                         /* 初始化HAL库 */
    sys_stm32_clock_init(RCC_PLL_MUL9); /* 配置时钟,72MHz */
    delay_init(72);                     /* 初始化延时 */
    usart_init(115200);                 /* 初始化串口 */
    led_init();                         /* 初始化LED */
    lcd_init();                         /* 初始化LCD */
    my_mem_init(SRAMIN);                /* 初始化内部SRAM内存池 */

    /* 初始化SD卡 */
    while (sd_init() != 0){}

    exfuns_init();
    /* 挂载SD卡 */
    res = f_mount(fs[0], "0:", 1);
    if(res == FR_OK) printf("SD-Card mount successfully.\n");
    else printf("ERROR: SD-Card mount FAILED!");
    /* 获取SD卡容量 */
    while (exfuns_get_free("0", &total, &free) != 0){}
    printf("SD-Card Total size: %d MB,SD-Card Free size: %d\n",total >> 10,free >> 10);

    res = f_open(&f_log,"0:FatFs_test.txt",FA_CREATE_ALWAYS | FA_WRITE );
    if(res == FR_OK)
    {
        printf("File open successfully.\n");
        res = f_write(&f_log,"celink",6,&num);
        f_close(&f_log);
    }
    else
    {
        printf("ERROR: File open failed!\n");
    }      



    while (1)
    {
        delay_ms(200);
        LED0_TOGGLE();
    }
}



捕获.JPG
捕获.JPG
捕获.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表