打印

pic16f877a 中读内部flash写操作

[复制链接]
1798|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cheky.yao|  楼主 | 2009-10-14 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void MCU_Write_Flash(const u8 *ptFlash_Data, u8 Data_Length, u16 Start_Addr)
{
u8  i = 0;
u16 WriteData = 0;
if(Data_Length > 0)
{
  EECON1 = 0x84;
  GIE = 0;
  for(i=0; i<Data_Length; i++)
  {      
   EEADRH = (u8) (Start_Addr >> 8);
   EEADR  = (u8) Start_Addr;
   
   WriteData = *(ptFlash_Data + i);
   EEDATH = (u8) (WriteData >> 8);
   EEDATA = (u8) WriteData ;   
   
   EECON2 = 0x55;
   EECON2 = 0xAA;
   WR = 1;
   asm("nop");
   asm("nop"); //wait here for complete
   Start_Addr++;
  }
  WREN = 0;
  GIE = 1;  
}
}



const u8 name[] =  "1234567890";
const u8 cheky[] = "Cheky.Yao7";

MCU_Write_Flash(cheky,10,name);
只写入了cheky中Cheky.Ya八个字符,但少了两个,MCU_Write_Flash(cheky,12,name);时会正常。这是怎么回事啊。
沙发
zhuhaiyang| | 2009-10-16 16:55 | 只看该作者
"Cheky.Yao7 "   C语言基础不行~~~位数的问题~~~再数数几bit~~~~~~~

使用特权

评论回复
板凳
zhuhaiyang| | 2009-10-16 16:56 | 只看该作者
还有你滴U8 定义滴是几位? ===

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

1

粉丝