打印

MSP430 Flash操作函数(转)

[复制链接]
1762|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GG_GG|  楼主 | 2012-9-4 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发环境:IAR C。/****************************************************************************************
*NAME:       void FLASHInit(void)
*FUNCTION:   FLASH初始化
*Parameter:  无参数
*RETURN:     无返回值
*****************************************************************************************/
void FLASHInit(void)
{
FCTL2=FWKEY+FSSEL_1+FN3+FN4;//时钟源为MCLK,25分频
}

/****************************************************************************************
*NAME:       void FLASH_Writew(unsigned int *Address,unsigned int nValue)
*FUNCTION:   将一个WORD类型的数据写入到指定的FLASH偶数起始地址
*Parameter:  Address,写入起始地址;nValue,写入值
*RETURN:     无返回值
*****************************************************************************************/
void FLASH_Writew(unsigned int *Address,unsigned int nValue)
{
FCTL1=FWKEY+WRT;             // WRT = 1
FCTL3=FWKEY;             // LOCK = 0
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
*Address=nValue;
FCTL1=FWKEY;        // WRT = 0
FCTL3=FWKEY+LOCK;   // LOCK = 1
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
}

/****************************************************************************************
*NAME:       void FLASH_Writeb(unsigned int *Address,unsigned char nValue)
*FUNCTION:   将一个BYTE类型的数据写入到指定的FLASH地址
*Parameter:  Address,写入地址;nValue,写入值
*RETURN:     无返回值
*****************************************************************************************/
void FLASH_Writeb(unsigned int *Address,unsigned char nValue)
{
FCTL1=FWKEY+WRT;             // WRT = 1
FCTL3=FWKEY;             // LOCK = 0
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
*Address=nValue;
FCTL1=FWKEY;        // WRT = 0
FCTL3=FWKEY+LOCK;   // LOCK = 1
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
}

/****************************************************************************************
*NAME:       void FLASH_Erase(unsigned int *Address)
*FUNCTION:   将FLASH里面的内容擦除掉
*Parameter:  Address,写入地址(段内任意)
*RETURN:     无返回值
*****************************************************************************************/
void FLASH_Erase(unsigned int *Address)
{
FCTL3=FWKEY;                 // LOCK = 0
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
FCTL1=FWKEY+ERASE;             //ERASE=1
*Address=0;            //向段内地址任意写,启动擦除操作
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
while((FCTL3&BUSY)==BUSY);    //等待FLASH存储器完成操作
}

/****************************************************************************************
*NAME:       unsigned int FLASH_Readw(unsigned int *Address)
*FUNCTION:   读指定FLASH偶数地址开始的字内容
*Parameter:  Address,读出地址
*RETURN:     返回读出值
*****************************************************************************************/
unsigned int FLASH_Readw(unsigned int *Address)
{
unsigned int Rdata;
Rdata=*Address;
return Rdata;
}

/****************************************************************************************
*NAME:       unsigned char FLASH_Readb(unsigned int *Address)
*FUNCTION:   读指定FLASH地址的字节内容
*Parameter:  Address,读出地址
*RETURN:     返回读出值
*****************************************************************************************/
unsigned char FLASH_Readb(unsigned int *Address)
{
unsigned char Rdata;
Rdata=*Address;
return Rdata;
}

相关帖子

沙发
chenjinnan| | 2012-9-4 17:20 | 只看该作者
额..(⊙o⊙)…

使用特权

评论回复
板凳
xiaox314| | 2012-9-4 20:07 | 只看该作者
支持一下!

使用特权

评论回复
地板
vivilzb1985| | 2012-9-5 09:55 | 只看该作者
非常不错的啊,我一大早的支持一下下的啊

使用特权

评论回复
5
gtsh| | 2012-12-24 21:18 | 只看该作者
支持

使用特权

评论回复
6
lzmm| | 2012-12-24 22:27 | 只看该作者
可以可以写成API的函数了

使用特权

评论回复
7
taihezhibanh| | 2012-12-25 17:48 | 只看该作者
支持一下

使用特权

评论回复
8
heibaiyinjiag| | 2012-12-25 18:20 | 只看该作者
这个?有什么应用吗?

使用特权

评论回复
9
sishangcine| | 2012-12-25 18:45 | 只看该作者
flash初始化用的啊

使用特权

评论回复
10
zgsxhzac| | 2012-12-25 18:55 | 只看该作者
路过 顶一顶

使用特权

评论回复
11
xiaox314| | 2012-12-25 22:31 | 只看该作者
支持一下

使用特权

评论回复
12
superman2012| | 2012-12-25 23:41 | 只看该作者
这个MSP430 Flash操作函数挺好的,谢谢分享

使用特权

评论回复
13
angerbird| | 2012-12-26 09:52 | 只看该作者
分享的非常不哦的,支持一下的啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

893

帖子

7

粉丝