MSP430讨论区
返回
登录/注册
有关Flash擦除问题已解决,注意选择好时钟源
楼主
Politician 于 2006-06-09 11:09:47
有关Flash擦除问题已解决,注意选择好时钟源
这一段程序本身没有问题,出现的问题在于选择MCLK作为输入源时,TIMEA也用MCLK作为输入源了,定时为6。25ms,所以对FLASH连续操作6.25ms时程序跑飞。后来改成TIMEA用ACLK作为输入源就OK了。
以后大家一定注意选择好时钟输入源~!
/***************************************************************************
段擦除
adr:要擦除的段内的任一地址
***************************************************************************/
void FlashErase(Uint adr)
{
Uchar *p0;
FCTL2=FWKEY+FSSEL_1+FN3+FN4;//选择MCLK作为输入源
FCTL3=FWKEY;
while(FlashBusy()==1) //等待FLASH存储器完成操作
;
FCTL1=FWKEY+ERASE;
p0=(Uchar *)adr;
*p0=0; //向段内地址任意写,启动擦除操作
while(FlashBusy()==1) //等待FLASH存储器完成操作
;
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
}
回复
1楼
DC 于 2006-06-09 12:11:58
谢谢Politician的经历之谈和实例。
回复
2楼
Politician 于 2006-06-09 13:24:41
呵呵。。。。
资源共享啊,这都是大家的帮忙下完成的。
以后多多交流。
回复
3楼
zhongyunde 于 2006-06-09 21:24:38
对FLASH 操作 的时候一般要关中断的 ,就是为了防止象你上面所说的情况!!
回复
4楼
wang001 于 2006-07-02 14:30:00
要关中断的
回复
5楼
冰河 于 2006-07-05 18:31:06
1系列和以前的4系列,写FLASH和擦除超作需要关闭中断。2系列不用
FLASH 操作的时钟不要超过500K,每个芯片的手册上有具体的数据
回复
1
2
3
电脑版
Page created in 0.0780 seconds width 2 queries.