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 + -
显示快捷键?