请教一个参数传递问题(msp430f5438A)

2019-03-24 14:27发布

函数作用是删除flash中的一个segment,可是起始地址怎么也传不进去,请大家帮忙看看问题出在哪?
代码如下:

#include "msp430.h"
#include "adc.h"
//#include "flash.h"

long i,j;
int temp[3];
unsigned long Flash_Addr;

void FlashSegErase(unsigned long pAddr)
{
    _bic_SR_register (GIE);
    char * Flash_ptr = (char *)pAddr;
    while (BUSY & FCTL3);
    FCTL3 = FWKEY;
    FCTL1 = FWKEY + ERASE;
    *Flash_ptr = 0;
    while (BUSY & FCTL3);
    FCTL3 = FWKEY + LOCK;

    _bis_SR_register (GIE);
}

void main(void) {
    WDTCTL = WDTPW + WDTHOLD;

    i=25000;
    j=0;
    Flash_Addr = 0x030000;

    initADC();
    FlashSegErase(Flash_Addr);
    while (1)
    {
        ADC12CTL0 |= ADC12SC;
        _bis_SR_register (GIE);
        i++;
    }
}


#pragma vector =  ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{

    temp[0] = ADC12MEM1;

    Flash_Addr++;
    temp[1] = ADC12MEM2;
    temp[2] = ADC12MEM3;

}



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
shower.xu
2019-03-25 03:54
< :TI_MSP430_内容页_SA7 --> 单就程序而言,unsigned long Flash_Addr是全局变量,LZ不用传递参数,直接在void FlashSegErase()里使用它就行了吧。

一周热门 更多>

相关问题

    相关文章