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.

关于CC3200 Pin01 复用的问题

我们自己项目的板子上把PIN01 作为了UART1的TX脚,也就是mode 7,

  // Enable Peripheral Clocks of UART1
    MAP_PRCMPeripheralClkEnable(PRCM_UARTA1, PRCM_RUN_MODE_CLK);
    // Config PIN_01 for UART1 UART1_TX
    // according to the swru367c , pin Multiplexing table 16-7 , pin mode 7
    MAP_PinTypeUART(PIN_01, PIN_MODE_7) ;
    // Config PIN_57 for UART1 UART1_RX , pin Multiplexing table 16-7 , pin mode 6
    MAP_PinTypeUART(PIN_57, PIN_MODE_6) ;

但是在使用camera的时候,参考SDK里面的例子,camera里面的I2C pinmux 操作把PIN01 配置成了GPIO 模式(mode 0)。

 //
    // Configure PIN_16 for I2C0 I2C_SCL
    //
    MAP_PinTypeI2C(PIN_16, PIN_MODE_9);

    //
    // Configure PIN_17 for I2C0 I2C_SDA
    //
    MAP_PinTypeI2C(PIN_17, PIN_MODE_9);

    //
    // Configure PIN_01 for MODE0
    //
    MAP_PinTypeI2C(PIN_01, PIN_MODE_0);

这样导致的问题是,UART1 和 Camera 分别用在两个Task里面,当使用camera操作的时候 UART1 就不能正常工作,因为pin01 被配置成了GPIO 模式,当UART1 工作的时候,camera 进行I2c配置的时候就会失败。  我尝试过在进行camera的pinmux操作时,把pin01 配置成mode 7 (

MAP_PinTypeUART(PIN_01, PIN_MODE_7) ; )
但是 这样camera 在进行I2c配置时依然会出现失败的情况。必须在操作camera时 把pin01 配置成 mode 0 才可以。 我在网上也查了大量的资料,
  • http://processors.wiki.ti.com/index.php/CC32xx_Summary_of_Known_Issues 

    这个连接里面也说 I2C默认使用 pin01 pin02 ,如果要更改i2c的默认配置的话,就要把pin01 pin02 配置成mode 0

    但是,是不是如果不用pin01 pin02 作为I2C模式使用的话只能把pin脚配置成GPIO 模式 ?

    如果是的话,在camera 例子里面 为什么pin02 可以被配置成mode 4,如果不是的话,为什么我把pin01 配置成 mode 7 ,I2C就不能正常工作了呢?