正点原子阿波罗开发板格式化SD卡时,死机!

2019-07-20 03:27发布

使用正点原子阿波罗STM32F429 资料盘(A盘)4,程序源码2,标准例程-HAL库版本实验41 FATFS实验

使用串口工具XCOMV1.4 格式化SD卡时,死机!
mf_fmkfs("0:",0,0)


仿真时发现死在下面函数的循环里, while((HAL_GetTick() - tickstart) < Delay)

__weak void HAL_Delay(__IO uint32_t Delay)
{
  uint32_t tickstart = 0;
  tickstart = HAL_GetTick();
  while((HAL_GetTick() - tickstart) < Delay)
  {
  }
}

请问下原子哥这是社么原因?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
taizonglai
1楼-- · 2019-07-20 03:32
1、把sdio_sdcard.h中的宏SD_DMA_MODE改为0,也即是使用轮询模式。2、在main函数的循环改为如下通过按键来格式化SD卡的代码:
7OJ$V~{(SI]W%VIHHKW}N.png
通过按键来调用f_mkfs来格式化SD卡,不要用USMART。这样就可以格式化成功,但是大概要2分钟左右。出现卡死到HAL_Delay函数里面,大概率是有什么其他的中断抢占了systick中断。倒是systick中断无法运行,HAL_Delay就卡死了。






翼行园子
2楼-- · 2019-07-20 04:47
 精彩回答 2  元偷偷看……
llandlu
3楼-- · 2019-07-20 09:31
翼行园子 发表于 2019-2-23 18:17
用USMART 格式化试下 发送这个指令试下mf_fmkfs("0:",1,4096)

用USMART 格式化试下 发送这个指令试下mf_fmkfs("0:",1,4096) 也是死机。

但正点原子阿波罗STM32F429 资料盘(A盘)4,程序源码1,标准例程-寄存器版本实验41 FATFS实验,这个版本下,用USMART 格式化试下 发送这个指令试下mf_fmkfs("0:",1,4096)和
mf_fmkfs("0:",0,0)都正常。
请帮助解决。(板也是正点这买的原装的)
正点原子
4楼-- · 2019-07-20 12:30
llandlu 发表于 2019-3-6 11:53
用USMART 格式化试下 发送这个指令试下mf_fmkfs("0:",1,4096) 也是死机。

但正点原子阿波罗STM32F429 ...

那就是用HAL库不行
用寄存器可以?
llandlu
5楼-- · 2019-07-20 12:34
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-20 16:38
llandlu 发表于 2019-3-7 17:42
对,寄存器版本的可以。能否修正下HAL版的,我想在HAL版的做后面的事情,

明天我让我同事试试

一周热门 更多>