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

📄 msp430_flash.h

📁 车载GPS监控终端的完整代码,与监控中心的通讯采用GPRS.
💻 H
字号:
/********************************************************\
关于MSP430的内部FLASH的说明:


1,针对所有型号的信息存储器的地址完全相同,从1000H----10FFH
	信息存储器A的开始地址在1080H,结束地址在10FFH
	信息存储器B的开始地址在1000H,结束地址在107FH

2,这里只讨论针对信息存储器的擦除,编程,和读取

	A:擦除:
		1,选择适当的时钟源和分频因子,为时序提供正确的时钟输入
		2,如果Lock=1,则将它复位
		3,监视BUSY标志,只有当BUSY=0才能执行下一步
		4,如果擦除一段,则设置ERASE=1,如果是多段则MERAS=1
		5,对擦除的地址范围内任意位置写一次空写入,用以启动擦除操作

	通过上面总结出,对FLASH擦除,需要做4件事情
		1,对FLASH的控制寄存器写入适当的控制位
		2,监视BUSY位
		3,空写一次
		4,等待

	B,编程
		1,选择适当的时钟源以及合适的分频因子
		2,如果Lock=1,将它复位
		3,监视BUSY,直到BUSY=0时才可进入下一步
		4,如果写入单字或者单字节,则将设置WRT=1
		5,如果块写或者多字,多字节顺序写入,则将设置WRT=1,BLKWRT=1
		6,将数据写入选定地址时,启动时序发生器,在时序发生器的控制下,完成整个过程

	C,读操作
		比较简单,可使用各种寻址方式,借助指令可轻松完成,而擦除和写入就不一样了,需要按固有
		的操作过程,通过控制FLASH模块的3个控制字的相应位来完成。

		FCTL1	控制寄存器1

		0---15

		1:ERASE
		2:MERAS
		6:WRT
		7:BLKWRT
		8--15:安全键值,读时为96H,写时为5AH

		FCTL2	控制寄存器2

		0--5:	FN0---FN5,分频系数选择位
		6-7:	SSEL0-SSEL1,选择时钟源
		8---15:安全键值,096H(读),0A5(写)

		FCTL3	控制寄存器3

		0:BUSY		忙标志位
		1:KEYV		安全键值出错标志位
		2:ACCVIGF	非法访问中断标志
		3:WAIT
		4:Lock	锁定位,0,不加锁,可读可写可擦除;1加锁,只能读
		5: EMEX	紧急退出位,在对FLASH操作失控时候的紧急处理0,无作用,1立即停止操作

		8-15:安全键值


		在进行FLASH的操作期间一定要关掉看门狗定时器和所有中断
\********************************************************/

#ifndef __Msp430_Flash_H
#define __Msp430_Flash_H


void Init_OperFlash(void);
void Write_SegAB(unsigned char Address_Flag);
void Read_SegAB(unsigned char Address_Flag);

#endif

⌨️ 快捷键说明

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