路虎LPC1768开发板FatFS系统无法理解的问题!
我下载了一个专门针对路虎开发板的FatFS文件系统,编译下载后,奇怪的是三次运行里面只有一次是正常的,前两次都是报错;如下第一次、-----------
挂在一个逻辑驱动器 成功 !
打开文件夹 Music 目录 失败 !
文件ftxt.txt打开 失败 !
第二次、----------
挂在一个逻辑驱动器 成功 !
打开文件夹 Music 目录 失败 !
文件ftxt.txt打开 失败 !
第三次、------------
初始化 SD卡 OK!
挂在一个逻辑驱动器 成功 !
打开文件夹 Music 目录 成功 !
文件ftxt.txt打开 成功 !
文件读取 成功!
工作描述:1、负责办公电脑、网络线路、交换机等网络设备的维护 2、负责打印机、复印机等办公设备的维护工作
3、机房改造,综合布线,设备检测
-------------------------------------------------
有用过此系统的吗,麻烦告知下是为什么呢!?
谢谢
源代码如下:
点击此处下载 ourdev_656339AC1G91.zip(文件大小:728K) (原文件名:NXP1768_FATFS(路虎开发板)1.zip) 自己顶一下,可千万别沉下去了!
而且,我在网上搜了一下,这个文件系统移植过程中还真有很多问题呢! 开优化了? 回复【2楼】90999张耀扬
开优化了?
-----------------------------------------------------------------------
应该没有啊,我截了张图,你看看是在哪里设置优化的吗?
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656393G2PK89.png
(原文件名:1.png) mount时并没有读卡.
所以,99%是你的卡初始化没过. 回复【4楼】aozima
mount时并没有读卡.
所以,99%是你的卡初始化没过.
-----------------------------------------------------------------------
我也知道是卡初始化没过,为何,三次里面又一次又是成功的呢?? 顶起!!! 看来是要沉下去了,没希望了! 已经搞定,可能是老卡,速度不够高,确实是初始化时要等待一下,要不然老卡,特别是MMC老卡不容易通过初始化!
初始化部分改进:
void LPC17xx_SPI_Init (void)
{
uint32_t dummy;
dummy = dummy; // avoid warning
/* Initialize and enable the SSP0 Interface module. */
LPC_SC->PCONP |= (1 << 21); /* Enable power to SSPI0 block*/
/* SSEL is GPIO, output set to high. */
LPC_GPIO0->FIODIR|=(1<<16); /* P0.16 is output */
LPC_PINCON->PINSEL1 &= ~(3<<0); /* P0.16 SSEL (used as GPIO) */
LPC17xx_SPI_DeSelect (); /* set P0.16 high (SSEL inactiv) */
/* SCK, MISO, MOSI are SSP pins. */
LPC_PINCON->PINSEL0 &= ~(3UL<<30); /* P0.15 cleared */
LPC_PINCON->PINSEL0 |=(2UL<<30); /* P0.15 SCK0 */
LPC_PINCON->PINSEL1 &= ~((3<<2) | (3<<4));/* P0.17, P0.18 cleared */
LPC_PINCON->PINSEL1 |=((2<<2) | (2<<4));/* P0.17 MISO0, P0.18 MOSI0 */
/* PCLK_SSP0=CCLK */
LPC_SC->PCLKSEL1 &= ~(3<<10); /* PCLKSP0 = CCLK/4 (18MHz) */
LPC_SC->PCLKSEL1 |=(1<<10); /* PCLKSP0 = CCLK (72MHz) */
LPC_SSP0->CR0= 0x0007; /* 8Bit, CPOL=0, CPHA=0 */
LPC_SSP0->CR1= 0x0002; /* SSP0 enable, master */
LPC17xx_SPI_SetSpeed (SPI_SPEED_400kHz);
////// ---------------------------------------------------------
/////可以用如下办法解决,是最好的方法,官方的
/* wait for busy gone */
while( LPC_SSP0->SR & ( 1 << SSPSR_BSY ) );
/* drain SPI RX FIFO */
while( LPC_SSP0->SR & ( 1 << SSPSR_RNE ) )
{
dummy = LPC_SSP0->DR;
}
///// ---------
///// 也可以用延时等待的方式
/* -------------------------
int i=60000; ///// 定义在开头,否则会报错
while(i--){};
///// ------------------------------------------------------------
}
注意,在这里最好使用官方的例程,考虑的很详细和仔细,其他的例程作为参考。
上次用了一个专门针对路虎1768开发板的例程,没通过,加了例程里面留的一个QQ好吗想请教一下
结果被告知他没有义务告诉我原因,还好一整奚落!
不过,还是要感谢坛子里的大侠们! 回复【8楼】yulri
-----------------------------------------------------------------------
大家要顶上去啊 MARK 顶 楼主搞定了吗 MARK~~~{:lol:}{:lol:}{:lol:} yulri 发表于 2011-7-13 10:40
已经搞定,可能是老卡,速度不够高,确实是初始化时要等待一下,要不然老卡,特别是MMC老卡不容易通过初始 ...
楼主也是大侠 赞赞 你好,我在论坛里看到你发的一个关于lpc1768实现fatfs的帖子,我下了你的程序,但是缺少文件。我弄了好久都实现不了,麻烦你能不能传给我一份,万分感谢
页:
[1]