flash_430.c

来自「MSP430的FLASH编程,有字节段的读写操作.适合于430单片机的各种应用」· C语言 代码 · 共 63 行

C
63
字号
//////////////////////////////////////////////
//功能:FLASH操作-BYTE数据写入              //
//参数:char *Data_ptr,char byte            //
//返回:无                                  // 
//日期:2003.11.6                           //
//////////////////////////////////////////////
void Flash_wb(char *Data_ptr,char byte)
{
FCTL3=0x0A500;           // Lock=0
FCTL1=0x0A540;           // WRT=1
*Data_ptr=byte;
}
//////////////////////////////////////////////
//功能:FLASH操作-word数据写入              //
//参数:int *Data_ptr, int word             //
//返回:无                                  // 
//日期:2003.11.6                           //
//////////////////////////////////////////////
void Flash_ww(int *Data_ptr,int word)
{
FCTL3=0X0A500;           //Lock=0
FCTL1=0X0A540;           //WRT=1
*Data_ptr=word;          
}
//////////////////////////////////////////////
//功能:FLASH操作-段擦除                    //
//参数:int *Data_ptr                       //
//返回:无                                  // 
//日期:2003.11.6                           //
//////////////////////////////////////////////
void Flash_clr(int *Data_ptr)
{
FCTL1=0X0A502;           // ERASE=1
FCTL3=0X0A500;           //Lock=0
*Data_ptr=0;
}
//////////////////////////////////////////////
//功能:FLASH 操作,先保存在擦写            //
//参数:uchar num                           //
//返回:无                                  //
//日期:2003.11.14                          //
//////////////////////////////////////////////
void Flash_do(uchar num)
{
uint lshi,linshi[13];       //
uchar i=0;
int *addr;
_DINT();
addr=(int *)0x1000;
for(i=0;i<13;i++)
   {
    linshi[i]=*(addr+i); 
   } 
linshi[num]=Flash_save[num];  //更新数据
Flash_clr(addr);     //段擦除
for(i=0;i<13;i++)
   {
    lshi=linshi[i];
    Flash_ww(addr+i,lshi);//写入
   }
_EINT(); 
} 

⌨️ 快捷键说明

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