⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nandflash_hal.c

📁 51平台下直接使用IO引脚读写NANDFLASH C模块,包括Write_cmd,Write_add,Write_data,Read_Data等
💻 C
字号:
/*
+FHDR------------------------------------------------------------------
Copyright (c),
Tony Yang –51,AVR,ARM firmware developer  
Contact:qq 292942278  e-mail:tony_yang123@sina.com.cn

Abstract:
$Id: main.c,v 1.2 2007/04/15 13:18:54 design Exp $
-FHDR-------------------------------------------------------------------
*/
#include<include\NandFlash_cfg.h>
#include<include\types.h>
#include<main.h>
#if compile_the_nandflash_code
/*
;==============================================================================================================
;函数 
;Nand Flash HAL(发送CMD)
;入口: cmd:命令代码
;出口:无
;==============================================================================================================
*/
void Nandflash_write_cmd(u8 cmd)
{	
    _CE = LOW;
    CLE  = HIGH;
    IO_0_7 = cmd;
	_WE = LOW;
	_WE = HIGH;
    CLE  = LOW;
	//_CE = HIGH;
}
/*
;==============================================================================================================
;函数 
;Nand Flash HAL(发送ADDRESS)
;入口: address:地址缓冲区首地址,len:地址长度
;出口:无
;==============================================================================================================
*/
void Nandflash_write_add(u8 *address,u8 len)
{ 

   u8 i;
   //_CE = LOW;
   ALE = HIGH; 
   for(i = 0;i < len;i++)
   {
        IO_0_7 = address[i];
	    _WE = LOW;
		_WE = HIGH;
   }
    ALE = LOW; 
   	//_CE = HIGH;
}
/*
;==============================================================================================================
;函数 
;Nand Flash HAL(发送databyte)
;入口: data_array:发送缓冲区首地址,len:缓冲区长度
;出口:无
;==============================================================================================================
*/
void Nandflash_write_data(u8 *data_array,u16 len)
{

   u16 i;
   CLE  = LOW;  //CLE无效
   ALE = LOW; 
   //_CE = LOW;
   for(i = 0;i < len;i++)
     {
	  #if __DEBUG
       IO_0_7 = data_array[i % 64];
      #else
       IO_0_7 = data_array[i];
	  #endif
	    _WE = LOW;
		_WE = HIGH;
     }
	 _CE = HIGH;
}
/*
;==============================================================================================================
;函数 
;Nand Flash HAL(接收databyte)
;入口: data_array:接收缓冲区首地址,len:指定接收字节数据
;出口:SUCC
;==============================================================================================================
*/
u8 Nandflash_read_data(u8 *data_array,u16 len)
{

   u16 i;
   //CLE  = LOW;  //CLE无效
   //ALE = LOW;   //ALE无效
   IO_0_7 = 0xff;
   //_CE = LOW;
   for(i = 0;i < len;i++)
     {
	    _RE = LOW;
	  #if __DEBUG
		data_array[i % 64] = IO_0_7;
      #else
		data_array[i] = IO_0_7;
	  #endif
		_RE = HIGH;
     }
	 _CE = HIGH;
    return(SUCC);
}


/*
;==============================================================================================================
;函数 
;Nand Flash HAL(WP_Enable)
;入口: nable: 1 - 0xff:WP Enable, 0 - WP Disable
;出口:SUCC
;==============================================================================================================
*/
void Nandflash_WP_Enable(u8 Enable)
{
 if (Enable)
   _WP = LOW;
 else
   _WP = HIGH;
}

/*
;==============================================================================================================
;函数 
;读NandFlash R/B引脚状态
;入口: 无
;出口:返回NandFlash R/B引脚状态
;==============================================================================================================
*/

 u8 NandFlash_Read_pin_rdy_bsy(void)
{

   if ( R_B == HIGH)
          return(READY);
   else
          return(BUSY);
}

/*
;==============================================================================================================
;函数 
;NandFlash_Init
;入口: 无
;出口:SUCC
;==============================================================================================================
*/
 u8 NandFlash_Init(void)
 {
   _WP = LOW;
   _WE = HIGH;
   ALE = LOW;
   CLE = LOW;
   _CE = HIGH;
   _RE = HIGH;
   R_B = HIGH;
   IO_0_7 = 0xff;
   return(SUCC);
 }
#endif
/*
+FFTR------------------------------------------------------------------------------------------------------------
$Log: nandflash_hal.c,v $






-FFTR------------------------------------------------------------------------------------------------------------
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -