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/MSP430F5529:GPIO 引脚仅响应0V 输入。 无法将中断配置为5V

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/586734/ccs-msp430f5529-gpio-pin-only-responding-to-0v-input-interrupt-cannot-be-configured-for-5v

器件型号:MSP430F5529

工具/软件:Code Composer Studio

我很难解决一个非常基本的问题。  我已经介绍了用户指南和示例、但我无法确定如何解决我的问题。  我在 MSP430F5529上有一个 GPIO 引脚配置为输入、当输入为低电平时、输出会发生变化。  我希望输出在信号变高时发生变化。  以下是配置:

P2DIR &=~BIT5;//复位信号硬件中断
P2OUT |= BIT5;//内部电阻器上拉
P2REN |= BIT5;//电阻器使能
P2IES |= BIT5;//中断边沿选择、1 =高电平到低电平、0 =低电平到高
电平// P2IFG &=~BIT5;
//中断使能 P2IE |中断5 
#define EXT_INPUT P2IN 和 BIT5 

我有一个函数根据这里的读数控制输出:

if (EXT_INPUT){//JP7引脚4将用作触发输入

、前提是(event = detected")
{
if (consecpass++>2)//如果有三个或更多通道、则通过打开绿色和关闭红色
来指示有一个样本{
green_LED_ON;
red_LED_OFF;
consecfail=0;
}
}

if (event==not detected){

if (consecfail++>3 && CONSECFAIL <35)
{
RED_LED_OFF;
GREEN_LED_ON;
CONSECPASS=0;
}

if (CONSECFAIL >35){

RED_LED_ON;
GREEN_LED_OFF;
}


if (CONSECPASS>30000)//用于指示设备是否仍在运行,以防止设备发生故障。
{
CONSECPASS=3;}


if (CONSECFAIL>30000)//用于防止翻滚,并在设备静止时指示故障。
{
CONSECFAIL=3;
}}}}否则

{
CONSECPASSEN=0;
CONSECFAIL=0;
RED_LED_ON;
GREE_LED_ON;

} 

我尝试将 EXT_INPUT 定义更改为~BIT4、这会将输出保持在 IF 条件、而不考虑输入。  当我具有 if (EXT_INPUT=0)或=1时、器件保持在 ELSE 状态。  我出了什么问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须清除 P2IES 中的位、如该行的注释中所述。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、即使您设置了中断边沿选择位、您也不会启用中断? 如果您想交换现有的配置、EXT_INPUT 应该为 P2IN &!BIT5。 我希望您实际上不会使用 MSP430的5V 输入、因为在 VCC 不应高于3.6V 的情况下、允许的最大值为 VCC + 0.3V

    此致、
    Ryan