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.

[参考译文] CCS/MSP430FR5969:尝试创建简单代码,以便使用板载按钮打开和关闭启动板上的板载LED

Guru**** 2522770 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/615812/ccs-msp430fr5969-trying-to-create-a-simple-code-to-switch-an-on-board-led-on-and-off-on-the-launchpad-using-an-on-board-button

部件号:MSP430FR5969

工具/软件:Code Composer Studio

您好,我是嵌入式平台的新用户,正在尝试创建一个简单的代码来打开和关闭我的启动板上的板载LED。 如果按下按钮,我希望默认状态LED亮起,LED熄灭。 如果我手动创建一个上拉开关,我的代码可以正常工作,否则不能正常工作。 我认为我对上拉式(P1REN)寄存器做了一些错误的事情。  

我做错了什么?  

代码:  

#include <MSP4S.h>

void main (void){

WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器

PM5CTL0 &=~LOCKLP5_L; //禁用低功率模式

PASEL0 = 0;

PAOUT = 0;

PADIR = 0xFFFF;

p1REN = 0b0.001万;

P1DIR &=~(BIT1);

同时(1){

如果(P1IN和0x02)= 0x00)

P1OUT = 0b0万;//P1OUT =上拉电阻器配置(P1 OUT = 0输出被下拉,P1OUT = 1输出被上拉)

}

否则

P1OUT = 0b0.0001万;//P1OUT =上拉电阻器配置(P1 OUT = 0输出被下拉,P1OUT = 1输出被上拉)

}

}

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这里没有延迟的情况下,LED将真正快速地闪烁。 太快了,可能会很暗。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奇怪的是,如果我手动拉引脚(使用一个10k电阻器到+3.3V),代码就会正常工作。 这使我相信我在内部缺少了一些东西来拔出输入销(WFP 1.1)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用project->new CCS project并选择'blink the LED'示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将此示例用作参考。 我需要重新表述我在这里要做的事情。 此代码用于默认状态,指示灯处于打开状态。 按下WFP 1.1 的板载按钮后,LED指示灯将熄灭。 我知道我写的是“一个简单的代码,用来闪烁我的启动板上的板载LED,这是不正确的。 我很抱歉。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确定。将P1OUT中的LSB设置在While (1)环路前面,LED将亮起,直到您清除所述位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅需说明:
    我遇到的问题是我不能让内部上拉工作。 我正在使用寄存器P1REN。 如果我创建了外部上拉,则代码可以正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复!

    仅需说明:

    如果我连接了外部上拉(10k电阻器到3.3V),则开关输入工作正常。 但是,如果我依赖我在代码中设置的内部上拉,而没有外部上拉,则不会。 我想知道我是否使用了正确的寄存器,以及是否遗漏了任何内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    提示:对于输入位... P1REN中的设置位可导致内部上拉或下拉。
    请参阅SLAU367章节12.4 8

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

    我在您的代码中看到您在切换时将P1OUT设置为0b0万x。
    我假设您在BIT1中有输入,因此要进行上拉操作,您需要将关联的输出设置为1,并将端口设置为输入(您执行的是后者)。

    所以...

    在1中初始化P1OUT的BIT1
    再次设置输出时,P1OUT = 0b0.0001万x

    希望它能起作用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢,完美!