📄 p197_s1.c
字号:
//FLASH模块操作举例
//例:信息段A、B的擦除和写入操作。P197
//#include <msp430x11x1.h>
#include <msp430x14x.h> //F14X系列单片机
char value; //写入到信息段A的8位数值
//函数声明
void write_SegA (char value);
void copy_A2B (void);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
FCTL2 = FWKEY + FSSEL0 + FN0; //定义时钟
value = 0; //初始化value=0
while(1)
{
write_SegA(value++); //写信息段A
copy_A2B(); //信息段A内容复制到信息段B
}
}
//写信息段A函数
void write_SegA (char value)
{
char *Flash_ptr; //Flash指针
unsigned int i;
Flash_ptr = (char*) 0x1080; //初始化Flash指针
FCTL1 = FWKEY + ERASE; //允许擦除
FCTL3 = FWKEY; //解锁
*Flash_ptr = 0; //空写,启动擦除
FCTL1 = FWKEY + WRT; //允许写
for (i=0; i<128; i++)
{
*Flash_ptr++ = value;
}
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK; //锁定
}
//信息段A内容拷贝到信息段B函数。
void copy_A2B (void)
{
char *Flash_ptrA; //信息段A指针
char *Flash_ptrB; //信息段B指针
unsigned int i;
Flash_ptrA = (char*) 0x1080; //初始化信息段A指针
Flash_ptrB = (char*) 0x1000; //初始化信息段B指针
FCTL1 = FWKEY + ERASE;
FCTL3 = FWKEY;
*Flash_ptrB = 0;
FCTL1 = FWKEY + WRT;
for (i=0; i<128; i++)
{
*Flash_ptrB++ = *Flash_ptrA++; //信息段A内容对应复制到段B
}
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -