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.

[参考译文] LAUNCHXL-CC2650:PIN_setPortOutputVal ()用法?

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/570293/launchxl-cc2650-pin_setportoutputval-usage

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

您好!

  我已经读出,如果使用 PIN_setPortOutputVal(),则只有输入值时才会设置输出引脚。 那么、如果我有如下所示的引脚配置、并且我在 Board_COL0、 Board_col1、 Board_col2、 Board_col3上设置输出值、那么我只需要设置4位吗?

#define PAD_cols (Board_COL0 |Board_col1|Board_col2|Board_col3)

PIN_Config keyPinsCfg[]=
{
#if defined (CC2650_LAUNCHXL)|| Defined (CC1350_LAUNCHXL)
Board_BTN1 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_BTN2 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_ROW0 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_ROW1 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_ROW2 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_Row3 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP、
Board_COL0 | PIN_GPIO_OUTP_EN | PIN_OPENDRAIN、
Board_col1 | PIN_GPIO_OUTP_EN | PIN_OPENDRAIN、
Board_col2 | PIN_GPIO_OUTP_EN | PIN_OPENDRAIN、
Board_col3 | PIN_GPIO_OUTP_EN | PIN_OPENDRAIN

、#endif
PIN_TERMINATE
};

PIN_STATE 密钥引脚;
PIN_Handle hKeyPins; 

至、输出0至 Board_COL0、输出1至 Board_col1、Board_col2、Board_col3、我可以使用以下代码?

PIN_setPortOutputVal (hKeyPins、(<Board_COL0) | (1<<Board_COL1) | (1<<Board_COL2) | (1<<Board_COL3)); 

-克尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于该函数、未包含在变量中的任何引脚都将设置为0。 因此、在您的情况下、您只需要分配要将其设置为高电平的引脚。

    这意味着您可以直接写入
    PIN_setPortOutputVal (hKeyPins、(<Board_COL1) | (1<<Board_COL2) | (1<<Board_COL3));
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Christin:

      谢谢。

      我将首先尝试 LED,并查看 PIN_setPortOutputValue()是如何工作的。 我的应用是 BLE 4x4键盘、0将在 Board_Colx 上一次输出一个。  由于我已经将这4个引脚设置为"开漏"、它们应该只输出0。 如果我将一个 Board_colx 设置为1、则引脚不应输出1。

    在发布之前、我已经在我的代码中设置了这个。 Board_keyScanHandler()将使用时钟每25ms 调用一次。 在更好地理解了在 CC2650 Launchpad 的2个 LED 上尝试 PIN_setPortOutputValue()之后,我只会改进代码。

    静态空 Board_keyScanHandler (UARg a0)
    {
    int i;
    
    对于(I = 0;I < 4;I++)
    {
    PIN_setPortOutputValue (hKeyPins、~(0x8>>I)& PIN_getPortOutputValue (hKeyPins));
    }
    } 


    -克尔