您的位置 首页 厂商

如何将MSP430单片机中的long数据烧写至Flash中去

如何将MSP430单片机中的long数据烧写至Flash中去-代码:

#include“io430.h”

void main(void)

{

//初始化RAM信息段的指针

unsigned long * RAM_ptr = (unsigned long *) 0x0200;

//初始化Flash信息段的指针

unsigned long * Flash_ptr = (unsigned long *) 0x1800;

RAM地址0x0200中读取一个long数据,并烧写至地址为0x1800的Flash中。

代码:

#include“io430.h”

void main(void)

{

//初始化RAM信息段的指针

unsigned long * RAM_ptr = (unsigned long *) 0x0200;

//初始化Flash信息段的指针

unsigned long * Flash_ptr = (unsigned long *) 0x1800;

//寄存数据的变量

unsigned long value;

WDTCTL = WDTPW + WDTHOLD; //封闭看门狗

P4DIR |= BIT2; //设置P4.2为输出端口,衔接LED作为指示

while(FCTL3 & BUSY); //判别是否处于繁忙状况

FCTL3 = FWKEY; //铲除LOCK标志

FCTL1 = FWKEY + ERASE; //挑选段擦除,置位ERASE

*Flash_ptr = 0; //将指针所指向的地址写0,发动擦除

FCTL1 = FWKEY + BLKWRT; //写答应,长字

//读RAM信息到value变量

value = *RAM_ptr;

*Flash_ptr = value; //写Flash

while(FCTL3 & BUSY); //判别是否处于繁忙状况

FCTL1 = FWKEY; //清楚WRT位

FCTL3 = FWKEY + LOCK; //置位LOCK标志

while(1)

{

P4OUT ^= BIT2; //烧写完结,点亮绿指示灯

__delay_cycles(1000000);

}

}

标题二

从RAM地址0x0200开端读取一个长度为8的字符数组,并烧写至地址为0x1800的Flash中。

#include“io430.h”

# define NumToWrite 8

void main(void)

{

//初始化RAM信息段的指针

unsigned char * RAM_ptr = (uint8_t *) 0x0200;

//初始化Flash信息段的指针

unsigned char * Flash_ptr = (uint8_t *) 0x1800;

//寄存数据的变量

unsigned char value[NumToWrite];

int i;

WDTCTL = WDTPW + WDTHOLD; //封闭看门狗

P4DIR |= BIT2; //设置P4.2为输出端口,衔接LED作为指示

while(FCTL3 & BUSY); //判别是否处于繁忙状况

FCTL3 = FWKEY; //铲除LOCK标志

FCTL1 = FWKEY + ERASE; //挑选段擦除,置位ERASE

*Flash_ptr = 0; //将指针所指向的地址写0,发动擦除

FCTL1 = FWKEY + BLKWRT; //写答应,长字

//读RAM信息到value变量

for (i=0;i

value[i] = *RAM_ptr++;

//将数组写入Flash

for (i=0;i

*Flash_ptr++ = value[i];

while(FCTL3 & BUSY); //判别是否处于繁忙状况

FCTL1 = FWKEY; //清楚WRT位

FCTL3 = FWKEY + LOCK; //置位LOCK标志

while(1)

{

P4OUT ^= BIT2; //烧写完结,点亮绿指示灯

__delay_cycles(1000000);

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/344993.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部