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/CC2640R2F:添加新引脚并通过 GPIO 库对其进行控制

Guru**** 2589280 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/604918/rtos-cc2640r2f-adding-a-new-pin-and-controlling-it-via-gpio-library

器件型号:CC2640R2F

工具/软件:TI-RTOS

您好!

我已经尝试按照 TI 资源浏览器中有关 GPIO.h 库的步骤进行操作。  

我已按照步骤使用为 CC2640R2-LAUNCHXL 提供的板级配置文件。 我将其与我自己的硬件结合使用。 这是我使用的代码。 但我似乎无法控制我想要的引脚。


/*
================================================ GPIO ===========================================
*/
#include 
#include 

/*
引脚配置数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC2640R2_LAUNCHXL.h 中定义
*注意:不用于中断的引脚应放置在
*的末尾 数组。 回调数组到
*的回调条目可以省略 减少内存使用。
*/
GPIO_PinConfig gpioPinConfigs[]={
/*输入引脚*/
GPIOCC26XX_DIO_13 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_RISING、/*按钮0 */
GPIOCC26XX_DIO_14 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_RISING、/*按钮1 */

/*输出引脚*/
GPIOCC26XX_DIO_07 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、/*绿色 LED *
GPIOCC26XX_DIO_06 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、/*红色 LED *

/*测试引脚*/
ioID_26 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW、/* PB_01 *
};

//
*回调函数指针数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC2640R2_LAUNCH.h 中定义
*注意:不用于中断的引脚可从回调数组中省略至
* 减少内存使用(如果放置在 gpioPinConfigs 数组的末尾)。
*/
GPIO_CallbackFxn gpioCallbackFunctions[]={
空,/*按钮0 */
空、/*按钮1 */
};

const GPIOCC26XX_Config GPIOCC26XX_CONFIG ={
.pinConfigs =(GPIO_PinConfig *) gpioPinConfigs、
回调 =(GPIO_CallbackFxn *) gpioCallbackFunctions、
numberOfPinConfigs = CC2640R2_LAUNCHXL_GPIOCOUNT、
numberOfCallbacks = sizeof (gpioCallbackFuncions)/sizeof (GPIO_CallbackFxn)、
.intPriority =(~0)
}; 

函数中包含以下内容


void * mainThread (void * arg0)
{
/* 1秒延迟*/
uint32_t 时间= 1;

/*调用驱动程序初始化函数*/
GPIO_init();
// I2C_init ();
// SDSPI_init ();
// spi_init();
UART_INIT();
// Watchdog_init();

SR_clearMultiDio (0xFFFF);
SR_setMultiDio (mskOptEnab);

/* UART 设置*/

UART_Handle 句柄;
UART_Params 参数;
uint8_t txBuf[]="Hello World!\r\n\r\n;//传输缓冲区
//初始化 UART 并指定非默认参数
UART_PARAMS_INIT (params);
params.baudrate = UART_Baud;
params.writeDataMode = UART_DATA_BINARY;
句柄= UART_OPEN (0、参数);



while (1){
睡眠(时间);
//打开 UART 并执行写操作
UART_WRITE (handle、txBuf、sizeof (txBuf));
GPIO_TOGGLE (IOID_26);
}
} 

我想知道我在这里错过了什么、因为我执行了 GPIO 库示例中的所有步骤、但看不到结果。 如果我在调试器中手动将引脚设为高电平、我可以测量引脚上的电压、因此我不认为这是硬件问题

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

    我建议您从 TI-RTOS 引脚示例程序中学习。 请参阅、例如打开 LED 的要求是什么。

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

    我按照这些示例操作、可以初始化引脚、方法是将其设置为输出和高电平、然后测量引脚上的电压。 这按预期工作。 但是、当我尝试切换引脚或对其进行写入时、它不允许我这么做。 我有单步执行代码、似乎我的系统首先使用 init_pins ()进行初始化、然后在主循环中调用 init_gpio ()(使用空示例)。