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.

[参考译文] RTOS/CC2640:当我更改引脚配置并设置 BT 芯片似乎复位的值时。

Guru**** 2553260 points
Other Parts Discussed in Thread: CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/580884/rtos-cc2640-when-i-change-the-configuration-of-a-pin-and-set-the-value-my-bt-chip-seems-to-reset

器件型号:CC2640

工具/软件:TI-RTOS

我使用以下代码将 CC2640 5x5目标上的输入更改为输出。  

当我设置输出时、我的目标板看起来会复位。  以下代码在 CC2640 7x7评估板上运行正常。

是否有更好的方法将输入重新配置为输出?

谢谢、

John

#define PIN_IN_BAUD_LOW_COMPLETE ioID_9// DIO_9
#define PIN_IN_PROD_TEST_MODE_ACTIVE_LOW IOID_11// DIO_11 (启动后切换到 PIN_OUT_BT_CONNECTION
#define PIN_OUT_BT_CONNECTIONioID_11

const PIN_Config BoardGpioInitTable[]={

// PIN_OUT_UART_TX | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull、 //处于非活动电平
的 UART TX 引脚 PIN_IN_BAUD_LOW_COMPLETE| PIN_INPUT_EN | PIN_PULLUGDOWN | PIN_迟滞、//高电平有效
PIN_IN_PROD_TEST_MODE_ACTIVE_LOW | PIN_INPUT_EN | PIN_PULLUGDOWN | PIN_迟滞、//低电平有效

PIN_TERMINATE //终止列表
};

PIN_init (BoardGpioInitTable);

hGpioPin = PIN_open (&pinGpioState、BoardGpioInitTable);

if (PIN_remove (hGpioPin、 PIN_IN_PROD_TEST_MODE_ACTIVE_LOW)== PIN_SUCCESS)
{
PIN_ADD(hGpioPin,(PIN_OUT_BT_CONNECTION | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull ));
}

PIN_setOutputValue (hGpioPin,PIN_OUT_BT_CONNECTION,1);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    John、我无法从代码段中真正了解您要更改的内容。 我在这里的最初猜测是您的器件出现硬件异常、而不是复位。 此外、_BoardGpioInitTable_只是一个具有"默认"引脚值的表。 单个 TI 驱动程序将尝试打开驱动程序 hwattrs 表中指定的引脚。

    UART 驱动程序(由 Display 驱动程序使用)将尝试使用您尝试分配的 UART 引脚。 当这些模块尝试打开时、您可能会遇到异常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tom、

    感谢您的快速回复。  我正在尝试使用 PIN_Remove()和 PIN_Add()函数将输入重新配置为输出。  

    1) 1)这是 PIN_Remove()和 PIN_Add()的正确用法,还是有更好的方法可以在运行时将引脚从输入更改为输出?

    2) 2) 一旦将其变为输出、我是否需要调用 PIN_setOutputEnable()?

    谢谢、

    John