This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2476

Guru**** 2386610 points
Other Parts Discussed in Thread: MSP430FR2476
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1088338/msp430fr2476

主题中讨论的其他部件:MSP430FR2476

没有什么特别的,没有什么特别的。

¿Tal vez tengo que deshabilitar o habilitar alguna función? ¿O tal vez el microcontrolador está Roto?

estoy usando un msp430fr2476 y los pines p 4.7 y p 2.7 no funcionan,todos los demás sí ñ os.

Estoy usando un reloj extern en Xout y xin y temporizador 0, ninguna otra función ó n。

MI configuración:

vacío Init_clk (vacío)

WDTCTL = WDTPW | WD tensión;//临时监查程序

P2SEL0 |= BIT0 | BIT1;// WFP 2.0~WFP 2.1 :水晶针


CSCTL7 &=~(XT1OFFG | DCOFFG);//清除XT1和DCO故障标志
SFRIFG1 &=~OFIFG;
} While (SFRIFG1 & OFIFG);//测试振荡器故障标志

__bis_sr_register(SCG0);//禁用FLL
CSCTL3 |= SELREF__XT1CLK;//将XT1CLK设置为FLL参考源
CSCTL1 = DCOFTRIMEN_1 // DCOFTRIM=3,DCO范围= 8MHz
| DCOFTRIM0
| DCOFTRIM1.
| DCORSEL_3;
CSCTL2 = FLLD_0 + 243;// DCODIV = 8MHz
__DELAY周期(3);
__BIC_SR_REGISTER(SCG0);//启用FLL


CSCTL4 = SELMS__DCOCLKDIV | LAST__XT1CLK;//设置ACLK = XT1CLK =3.2768万Hz
// DCOCLK = MCLK和SMCLK源
CSCTL5 || DIVM_0 | DIVS_1;// MCLK = DCOCLK = 8MHZ,
// SMCLK = MCLK/2 = 4MHz

P1DIR || BIT0 | BIT7;//将SMCLK ACLK和LED引脚设置为输出
P1SEL1 || BIT7;//将SMCLK WFP 1.7 引脚设置为第二功能
P2DIR || BIIT2;
P2SEL1 || BIT2;//将ACLK WFP 2.2 引脚设置为第二功能

PM5CTL0 &=~LCKLPM5;//禁用GPIO开机默认高阻抗模式
//以激活先前配置的端口设置

}

计时器:


timer_a_initContinuousModeParam initContParam ={0};
initContParam.clockSource = timer_a_CLOCKSOURCE_SMCLK;
initContParam.clockSourceDivider = timer_a_CLOCKSOURCE_diver_1;
initContParam.timerInterruptEnable_TAIE = timer_a_TAIE_interrupt_disable;
initContParam.timerClear = timer_a_do清除;
initContParam.startTimer = false;
timer_a_initContinuousMode(timer A1_base,&initContParam);
Timer_a_clearCaptureCompareInterrupt (timer_a1_base,timer_a_CAPTURECOMPare_register_0);

timer_a_initCompareModeParam initCompParam ={0};
initCompParam.compareRegister = TIME_A_CAPTURECOMPARE_REGISTER_0;
initCompParam.compareInterruptEnable = timer_a_CAPTURECOMPare_interrupt_enable;
initCompParam.compareOutputMode = TIME_A_OUTPUTMODE_OUTBITVALUE;
initCompParam.compareValue = 4000;
timer_a_initCompareMode(timer A1_base,&initCompParam);

timer_a_startCounter (timer_a1_base,timer_a_continuous_mode);

//输入LPM0,启用中断
__bis_sr_register (GIE);

IO:

GPIO_setAsOutputPin (Sega_port,Sega_PIN);
GPIO_setAsOutputPin (SegB_Port,SegB_PIN);
GPIO_setAsOutputPin (SegC_port,SegC_PIN);
GPIO_setAsOutputPin (SegD_port,SegD_PIN);
GPIO_setAsOutputPin (SegE_port,SegE_PIN);
GPIO_setAsOutputPin (SegF_port,SegF_PIN);
GPIO_setAsOutputPin (SegG_Port,SegG_PIN);
GPIO_setAsOutputPin (SegDP_port,SegDP_PIN);

GPIO_setAsOutputPin (Dig1_port,Dig1_PIN);
GPIO_setAsOutputPin (Dig2_port,Dig2_PIN);
GPIO_setAsOutputPin (Dig3_port,Dig3_PIN);
GPIO_setAsOutputPin (Dig4_port,Dig4_PIN);

GPIO_setAsInputPin (puls_down端口,puls_down PIN);
GPIO_setAsInputPin (puls_UP_port,puls_UP_PIN);
GPIO_setAsInputPin (puls_set_port,puls_set_PIN);

GPIO_setAsOutputPin (Rel1_port,Rel1_PIN);
GPIO_setAsOutputPin (Rel22_port,Rel2_PIN);
GPIO_setAsOutputPin (Rele3_port,Rele3_PIN);

//POR defecto
GPIO_setOutputLowOnPin (Sega_port,Sega_PIN);
GPIO_setOutputLowOnPin (SegB_port,SegB_PIN);
GPIO_setOutputLowOnPin (SegC_port,SegC_PIN);
GPIO_setOutputLowOnPin (SegD_port,SegD_PIN);
GPIO_setOutputLowOnPin (SegE_port,SegE_PIN);
GPIO_setOutputLowOnPin (SegF_port,SegF_PIN);
GPIO_setOutputLowOnPin (SegG_port,SegG_PIN);
GPIO_setOutputLowOnPin (SegDP_port,SegDP_PIN);

GPIO_setOutputLowOnPin (Dig1_port,Dig1_PIN);
GPIO_setOutputLowOnPin (Dig2_port,Dig2_PIN);
GPIO_setOutputLowOnPin (Dig3_port,Dig3_PIN);
GPIO_setOutputLowOnPin (Dig4_port,Dig4_PIN);

GPIO_setOutputLowOnPin (Rel1_port,Rel1_PIN);
GPIO_setOutputLowOnPin (Rel22_port,Rel2_PIN);
GPIO_setOutputLowOnPin (Rele3_port,Rele3_PIN);


pm_desbloquearLPM5();

定义:

#define Sega_port gPIO_PORT_P6
#define Sega_PIN GPIO

#define SegB_port gPIO_PORT_P2
#define SegB_PIN GPIO PIN7

#define SegC_port gPIO_PORT_P1
#define SegC_PIN GPIO PIN0

#define SegD_port gPIO_PORT_P5
#define SegD_PIN GPIO

#define SegE_port gPIO_PORT_P5
#define SegE_PIN GPIO PIN3

#define SegF_port gPIO_PORT_P4
#define SegF_PIN GPIO

#define SegG_port gPIO_PORT_P4
#define SegG_PIN GPIO _PIN3

#define SegDP_port gPIO_PORT_P1
#define SegDP_PIN GPIO

#define Dig1_port gPIO_PORT_P4
#define Dig1_PIN GPIO,PIN7
#define Dig2_port gPIO_PORT_P5
#define Dig2_PIN GPIO PIN0
#define Dig3_port gPIO_PORT_p5
#define Dig3_PIN GPIO,PIN1
#define Dig4_port gPIO_PORT_P5
#define Dig4_PIN GPIO


#define Rel1_port gPIO_PORT_P1
#Define Rel1_PIN GPIO
#define Rel2_port gPIO_PORT_P1
#Define Rel2_PIN GPIO _PIN5
#define Rele3_port gPIO_PORT_P1
#Define Rele3_PIN GPIO PIN6


#define puls_UP_port gPIO_PORT_P2
#define puls_UP_PIN GPIO_PIN5

#define puls_down端口gPIO_PORT_P3
#define puls_down _PIN gPIO_PIN1

#define puls_set_port gPIO_PORT_P3
#define puls_set_PIN gPIO_PIN7

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    </s>2476

    没有什么特别的,没有什么特别的。

    ¿Tal vez tengo que deshabilitar o habilitar alguna función? ¿O tal vez el microcontrolador está Roto?

    estoy usando un msp430fr2476 y los pines p 4.7 y p 2.7 no funcionan,todos los demás sí ñ os.

    Estoy usando un reloj extern en Xout y xin y temporizador 0, ninguna otra función ó n。

    MI configuración:

    [/引述]

    我不知道为什么,但我的两个PIN不起作用。

    也许我必须禁用或启用某些功能? 或者微控制器可能已损坏?

    我使用的是msp430fr2476和pins 4.7 和ppg 2.7 ,不工作,其他所有的都工作。

    我正在XOUT和Xin上使用外部时钟和计时器0,没有其他功能。

    我的配置:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否正在使用Launchpad? 如果是这样,WFP 4.7 将连接到蓝色LED,这可能会妨碍您连接到接头针脚的任何位置。

    您如何知道WFP 2.7 不工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用的是自定义PCB,我只是尝试使用7秒4位显示屏。

    但digit1 (pg 4.7)和段B (2.7)不起作用,它们不亮
    我已确认显示屏工作正常。

    所有其他数字和段都正常工作,但与这些针脚相关的数字和段不能正常工作。

    使用万用表进行测量和调试时,我发现这些引脚的状态不会改变。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我把上面的代码粘贴到了一个main中,然后在一个Launchpad上运行(我去掉了水晶代码),我发现WFP 2.7 和WFP 4.7 都很低。 我写了P4OUT.7=1,就让蓝色LED灯亮了。 我怀疑您所看到的情况不在您发布的代码范围内。

    您的1.0 SR ISR (Timer1_A0_vector)有什么作用? 导致(或应该导致)针脚状态改变的原因是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在我的计时器例程中,我只使用它来增加1ms计时器,它们不会以任何方式影响引脚:

    #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
    #pragma vector=TIMER1_A0_VECTOR
    __interrupt
    #elif defined(__GNUC__)
    __attribute__((interrupt(TIMER1_A0_VECTOR)))
    #endif
    void TIMER1_A0_ISR (void)
    {
        uint8_t i = 0;
        for(i = 0; i <= NUMERO_PULSADORES-1; i++)
        {
            if(Pulsadores[i].Enable_Pulsador == 1){Pulsadores[i].TiempoRebote++;}
        }
        if(Pulsadores_FlagSubirVelocidad){Pulsadores_ContadorSubirVelocidad++;}
        if(Display_BlinkFlag){Display_BlinkContador++;}
        if(MensajeGenericoFlag){MensajeGenericoContador++;}
        if(Ordenes_FlagPuntosHora){Ordenes_ContadorPuntosHora++;}
    
        Timer_A_clear(TIMER_A1_BASE);
    }

    如果它对您有用,我的微控制器可能焊接不良或损坏。 这个星期一或星期二,我将再次焊接另一个PCB,以排除这个问题。

    您是否使用过MPS430WARE库?
    您是否可以粘贴LED如何开启的代码,以便在PCB上进行测试?

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我刚刚在调试器中直接写入了P4OUT。 Driverlib等效项类似于:

    gPIO_setOutputHighOnPin (Dig1_port,Dig1_PIN);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最后,我的UC似乎被打破了。
    我安装了一个新的PBC,现在它运行良好。
    很可能是通过手动焊接而损坏。

    万分感谢