TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310有的IO口可以正常输入输出,有的不正常

大家好,一样的程序和配置,CC1310有的IO口可以正常输入输出,有的不正常,配置为输入和输出都是感觉处于三态状态没反应,是什么原因?

芯片是5*5 RHB封装的,测试结果是0、1、4~7引脚不正常,2、3、8~14引脚正常,但第10引脚高电平输出电压只有2.5V

程序是用官方例程gpiointerrupt更改的,主要配置代码如下,为了直观方便,把所有IO口都按顺序放进列表,直接用数字表示

GPIO_PinConfig gpioPinConfigs[] = {
0,
1,
2,
3,
4,
5,
6,
7, 8,
9,
10,
11,
12,
13,
14,
// GPIOCC26XX_DIO_13 | GPIO_DO_NOT_CONFIG, /* Button 0 */
// GPIOCC26XX_DIO_14 | GPIO_DO_NOT_CONFIG, /* Button 1 */
//
// GPIOCC26XX_DIO_15 | GPIO_DO_NOT_CONFIG, /* CC1310_LAUNCHXL_SPI_MASTER_READY */
// GPIOCC26XX_DIO_21 | GPIO_DO_NOT_CONFIG, /* CC1310_LAUNCHXL_SPI_SLAVE_READY */
//
// /* Output pins */
// GPIOCC26XX_DIO_07 | GPIO_DO_NOT_CONFIG, /* Green LED */
// GPIOCC26XX_DIO_06 | GPIO_DO_NOT_CONFIG, /* Red LED */
// GPIOCC26XX_DIO_30 | GPIO_DO_NOT_CONFIG, /* TMP116_EN */
//
// /* SPI Flash CSN */
// GPIOCC26XX_DIO_20 | GPIO_DO_NOT_CONFIG,
//
// /* SD CS */
// GPIOCC26XX_DIO_21 | GPIO_DO_NOT_CONFIG,
//
// /* Sharp Display – GPIO configurations will be done in the Display files */
// GPIOCC26XX_DIO_24 | GPIO_DO_NOT_CONFIG, /* SPI chip select */
// GPIOCC26XX_DIO_22 | GPIO_DO_NOT_CONFIG, /* LCD power control */
// GPIOCC26XX_DIO_23 | GPIO_DO_NOT_CONFIG, /*LCD enable */

};

void *mainThread(void *arg0)
{
u32 pinIndex;
/* Call driver init functions */
GPIO_init();

// GPIO_setConfig(0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(2, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(3, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(4, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(5, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(6, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
GPIO_setConfig(7, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(8, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(9, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(10, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(11, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
GPIO_setConfig(12, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
GPIO_setConfig(13, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
// GPIO_setConfig(14, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
GPIO_toggle(13);
GPIO_toggle(13);
pinIndex = 1;
//GPIO_setConfig(pinIndex, GPIO_CFG_IN_NOPULL); //浮空输入
GPIO_setConfig(pinIndex, GPIO_CFG_IN_PU); //上拉输入
// GPIO_setConfig(pinIndex, GPIO_CFG_IN_PD); //下拉输入
while(1)
{
if(GPIO_read(pinIndex))

    GPIO_write(13, 1);
else

    GPIO_write(13, 0);
}

}

另外,也测试过更改BoardGpioInitTable列表的内容,不管怎么配置,没有影响的。

const PIN_Config BoardGpioInitTable[] = {

// 0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 5 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 6 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 7 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 8 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 9 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 10 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 11 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 12 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 13 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
// 14 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

PIN_TERMINATE
};

Viki Shi:

有没有换颗芯片试一下?

os ym:

回复 Viki Shi:

有两块板,都 是一样。

Viki Shi:

回复 os ym:

你的封装改过了吗?TI例程默认是7*7的例程,你用5*5需要修改封装,具体方法论坛讨论过,搜一下相关关键字

Viki Shi:

回复 os ym:

感谢提供反馈,恭喜解决问题

赞(0)
未经允许不得转载:TI中文支持网 » CC1310有的IO口可以正常输入输出,有的不正常
分享到: 更多 (0)