日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1.前言MSP430F5438的片內(nèi)FLASH可以當(dāng)做EEPROM使用,該部分FLASH稱為INFO FLASH,總共有4塊每塊128Byte。雖然INFO FLASH容量比較少,但是多數(shù)情況還是夠用的?!?014年1月回顧】存在問題需要立刻改進(jìn)2.代碼實(shí)現(xiàn)//時(shí)鐘

1.前言

MSP430F5438的片內(nèi)FLASH可以當(dāng)做EEPROM使用,該部分FLASH稱為INFO FLASH,總共有4塊每塊128Byte。雖然INFO FLASH容量比較少,但是多數(shù)情況還是夠用的。

【2014年1月回顧】存在問題需要立刻改進(jìn)

2.代碼實(shí)現(xiàn)

//時(shí)鐘默認(rèn)情況

//FLL時(shí)鐘FLL選擇XT1

//輔助時(shí)鐘ACLK選擇XT132768Hz

//主系統(tǒng)時(shí)鐘MCLK選擇DCOCLKDIV8000000Hz

//子系統(tǒng)時(shí)鐘SMCLK選擇DCOCLKDIV8000000Hz

//UART時(shí)鐘選擇ACLK

//低頻波特率產(chǎn)生9600-8-N-1

#include

#include

#include

voidclock_config(void);

voidselect_xt1(void);

voiddco_config(void);

voiduart_config(void);

voidflash_writebuf(uint8_t*flash_ptr,uint8_t*buffer,uint8_tlen);

voidflash_readbuf(uint8_t*flash_ptr,uint8_t*buffer,uint8_tlen);

intmain(void)

{

clock_config();//初始化時(shí)鐘

uart_config();//初始化UART

_EINT();

//打印時(shí)間和提示信息

printf("Date:%s%srn",__DATE__,__TIME__);

printf("FlashTest!rn");

#if0

uint8_ttest_buffer[8]={1,2,3,4,5,6,7,8};

flash_writebuf((uint8_t*)0x1800,test_buffer,8);

#endif

uint8_told_flash[8]={0,};

uint8_tnew_flash[8]={0,};

//從infoflash0x1800處連續(xù)讀出8個(gè)字節(jié)

flash_readbuf((uint8_t*)0x1800,old_flash,8);

for(uint8_ti=0;i<8;i++)

{

printf("ADDR:0X%4X,%-2Xrn",0x1800+i,old_flash[i]);

new_flash[i]=old_flash[i]+1;

}

//累加之后再次寫入

flash_writebuf((uint8_t*)0x1800,new_flash,8);

while(1)

{

}

}

voidflash_writebuf(uint8_t*flash_ptr,uint8_t*buffer,uint8_tlen)

{

__disable_interrupt();//禁止中斷

FCTL3=FWKEY;//設(shè)置寫密鑰并解鎖

FCTL1=FWKEY+ERASE;//段擦除

*(unsignedint*)flash_ptr=0;//??

FCTL1=FWKEY+WRT;//字節(jié)寫入

for(uint8_ti=0;i

{

*flash_ptr++=*buffer++;

}

FCTL1=FWKEY;//設(shè)置寫密鑰

FCTL3=FWKEY+LOCK;//重新鎖住

__enable_interrupt();//恢復(fù)中斷

}

voidflash_readbuf(uint8_t*flash_ptr,uint8_t*buffer,uint8_tlen)

{

__disable_interrupt();

for(uint8_ti=0;i

{

*buffer++=*flash_ptr++;

}

__enable_interrupt();

}

voidclock_config(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看門狗

select_xt1();//選擇XT1

dco_config();//ACLK=XT1=32.768K

//MCLK=SMCLK=8000K

}

voidselect_xt1(void)

{

//啟動(dòng)XT1

P7SEL|=0x03;//P7.0P7.1外設(shè)功能

UCSCTL6&=~(XT1OFF);//XT1打開

UCSCTL6|=XCAP_3;//內(nèi)部電容

do

{

UCSCTL7&=~XT1LFOFFG;//清楚XT1錯(cuò)誤標(biāo)記

}while(UCSCTL7&XT1LFOFFG);//檢測XT1錯(cuò)誤標(biāo)記

}

voiddco_config(void)

{

__bis_SR_register(SCG0);//禁止FLL功能

UCSCTL0=0x0000;//SetlowestpossibleDCOx,MODx

UCSCTL1=DCORSEL_5;//DCO最大頻率為16MHz

UCSCTL2 = FLLD_1 + 243; // 設(shè)置DCO頻率為8MHz

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉