谢谢你的帮助,能帮我看下我的程序吗?看看有什么问题 #include <msp430.h> #include "BoardConfig.h uint *Flash_ptr; // Flash pointer unsigned int i; void flash_write(void) { while(FCTL3 & BUSY); FCTL2 = FWKEY + FSSEL0 + FN4+ FN1+ FN0; // MCLK/20 for Flash Timing Generator Flash_ptr = (uint *) 0x2080; // Initialize Flash pointer FCTL1 = FWKEY + ERASE; // Set Erase bit FCTL3 = FWKEY;// Clear Lock bit *Flash_ptr = 0; // Dummy write to erase Flash segment FCTL1 = FWKEY + WRT; } void int_clk(void) { BCSCTL1&=~XT2OFF; //打开XT振荡器 do { IFG1 &= ~OFIFG; //清除振荡错误标志 for(i = 0; i < 100; i++); _NOP(); //延时等待 } while ((IFG1 & OFIFG) != 0); //如果标志为1继续循环等待 BCSCTL2|=SELM_0; //MCLK 8M }
void main( void ) { WDTCTL = WDTPW + WDTHOLD; //关狗 int_clk(); flash_write(); while((FCTL3&BUSY)==BUSY) ;//等待FLASH存储器完成操作 for(i=0;i<8;i++) { *Flash_ptr=0x30; // Move results; Flash_ptr++; } FCTL1 = FWKEY; // Clear WRT bit FCTL3 = FWKEY + LOCK; // Reset LOCK bit _EINT(); } 这个程序在开发板上可以写入Flash8个0030,但是在我做的板子上就不行啊 |