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

📄 p197_s1.c

📁 msp430开发版程序
💻 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 + -