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/MSP430FR5994:CAN#39;t 使按钮正常工作

Guru**** 2595770 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/686605/ccs-msp430fr5994-can-t-get-the-button-to-work

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

这是我的代码

我尝试使用端口5.5上的按钮来打开和关闭我的 LED 指示灯  

提前感谢  

void main (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
P1DIR |= 0x01;//将 P1.0设置为输出方向
P1DIR |= 0x02;//将 P1.1设置为输出方向

P5DIR &=~BIT4;
P5REN |= BIT5;

for (;;){
IF (P5OUT & BIT5 = 0){
P1OUT ^= 0x01;

否则{



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

    您没有去抖、因此您可能需要确定的开启时间、而不是在其他位置进行具有确定关闭时间的切换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已尝试 P5IN、但仍然无法正常工作

    你能解释一下你的第二点是什么意思、我不是很理解
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用^= 0x01来切换该位。 由于您没有去抖功能、因此该位将在开关按下过程中随机切换次数、并在按下时持续开关(调光它)、然后在释放时随机切换次数。

    在"P1OUT ^= 0x01;"处放置一个断点、以查看您是否曾经到过那里。

    这是 LaunchPad 吗? 如果不是、您在开关上有上拉/下拉电阻器吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    > IF (P5OUT & BIT5 = 0){

    此条件始终为 false (即使在您将其更改为 P5IN 之后)。 尝试:

    > if (((P5IN & BIT5)=0){
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Steven、

    您是否能够解决您的问题?

    谢谢、

    Mitch