在线情况
楼主
  • 头像
  • 级别
    • 积分7
    • 经验726
    • 文章17
    • 注册2006-05-18
    有关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;
    }
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分7
      • 经验726
      • 文章17
      • 注册2006-05-18
      呵呵。。。。
      资源共享啊,这都是大家的帮忙下完成的。
      以后多多交流。
      微控网感谢您的参与
      Powered by LeadBBS 9.2 .
      Page created in 0.0781 seconds with 6 queries.