2019-03-24 14:41发布
谢谢你的帮助,能帮我看下我的程序吗?看看有什么问题
#include <msp430.h>#include "BoardConfig.huint *Flash_ptr; // Flash pointerunsigned 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,但是在我做的板子上就不行啊
最多设置5个标签!
[ 本帖最后由 wstt 于 2012-3-26 10:34 编辑 ]
谢谢你的帮助,能帮我看下我的程序吗?看看有什么问题
#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,但是在我做的板子上就不行啊
一周热门 更多>