各位工程师们好,我使用CC1310做开发时,遇到一个问题,原本功能是设置引脚去拉高和拉低,在对引脚初始化的时候返回值不成功,代码如下:
const PIN_Config pLedPinTable[] =
{
Board_DIO0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
Board_DIO1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
Board_DIO12 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
Board_DIO15 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
static PIN_State ledPinState;
static PIN_Handle hLedPins;
void taskFxn(UArg arg0, UArg arg1)
{
GPIO_init();
PIN_init(pLedPinTable);
if (PIN_init(pLedPinTable) != PIN_SUCCESS)
{
/* Error with PIN_init */
while (1)
{
UART_write(uart,"PIN Init Error\r\n",16);
}
}
hLedPins = PIN_open(&ledPinState, pLedPinTable);
if(!hLedPins )
{
while(1)
{
UART_write(uart,"pin out error\r\n",15);
}
}
GPIO_setConfig(Board_GPIO_LED0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(Board_GPIO_LED1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
/* Turn on user LED */
GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);
GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_OFF);
while(1)
{
motorNcircle(2,1);
GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_ON);
GPIO_write(Board_GPIO_LED0, 0);
Task_sleep(10*100*100);
motorNcircle(2,0);
GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_OFF);
GPIO_write(Board_GPIO_LED0, 1);
Task_sleep(10*100*100);
}
}
仿真调试结果是程序一直输出PIN Init Error 初始化失败
程序使用的DEMO是ti\simplelink_cc13x0_sdk_1_60_00_21\examples\rtos\CC1310_LAUNCHXL\drivers\uartecho
使用开发板为CC1310 LaunchPad
Alvin Chen:
你是pin init error对吧.
你配置的没啥问题,你去看看是否有IO冲突。
PIN_Config ledPinTable[] = {Board_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |PIN_DRVSTR_MAX,Board_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |PIN_DRVSTR_MAX,PIN_TERMINATE
};
user4799634:
回复 Alvin Chen:
谢谢您的回复,已解决问题,CC1310 LaunchPad 1.3版本使用7X7引脚时 板子上标明了DIO0,实际上 7X7引脚 没有定义DIO0,所以程序初始化引脚会报错,换成其他引进就行了。