📄 msp430_flash.c
字号:
#include <msp430x14x.h>
#include "Msp430_Flash.h"
#include "General.h"
/********************************************************\
* 函数名:Init_OperFlash()
作用域:外部文件调用
\********************************************************/
void Init_OperFlash(void)
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗WDT ,WDTPW看门狗的口令
FCTL2 = FWKEY + FSSEL1 + FN0;
}
/********************************************************\
* 函数名:Write_SegAB()
作用域:外部文件调用
\********************************************************/
void Write_SegAB(unsigned char Address_Flag)
{
char *Flash_ptr;
unsigned int i;
if(Address_Flag==0)
{
Flash_ptr = (char *)0x1080; //初始化指针
}
else if(Address_Flag==1)
{
Flash_ptr = (char *)0x1000; //初始化指针
}
else
{
return;
}
_DINT(); //关闭其他所有中断
FCTL1 = FWKEY + ERASE; //使能擦除操作
FCTL3 = FWKEY; //FLASH解锁
*Flash_ptr = 0; //空写,启动擦除
FCTL1 = FWKEY + WRT; //允许写操作
for(i=0;i<128;i++)
{
*Flash_ptr++=gGeneral_Buffer[i];
}
FCTL1 = FWKEY;
FCTL3 = FWKEY+LOCK; //写完了,锁定
_EINT(); //开启其他所有中断
}
/********************************************************\
* 函数名:Erase_SegAB()
作用域:外部文件调用
\********************************************************/
void Read_SegAB(unsigned char Address_Flag)
{
unsigned char *Flash_ptr;
unsigned int i;
if(Address_Flag==0)
{
Flash_ptr = (unsigned char *)0x1080; //初始化指针
}
else if(Address_Flag==1)
{
Flash_ptr = (unsigned char *)0x1000; //初始化指针
}
else
{
return;
}
for(i=0;i<128;i++)
{
gGeneral_Buffer[i]=*Flash_ptr++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -