在官方例程中的I2C配置以及LED配置
c
#define CONFIG_GPIO_LED_0 14
#define CONFIG_GPIO_LED_0_IOMUX (IOMUX_PINCM36)
#define GPIO_I2C_SDA_PIN (35)
#define GPIO_I2C_IOMUX_SDA (IOMUX_PINCM16)
#define GPIO_I2C_IOMUX_SDA_FUNC IOMUX_PINCM16_PF_I2C1_SDA
#define GPIO_I2C_SCL_PIN (34)
#define GPIO_I2C_IOMUX_SCL (IOMUX_PINCM15)
#define GPIO_I2C_IOMUX_SCL_FUNC IOMUX_PINCM15_PF_I2C1_SCL
- 为什么PA14的CONFIG_GPIO_LED_0是14,而CONFIG_GPIO_LED_0_IOMUX是IOMUX_PINCM36
- CONFIG_GPIO_LED_0是14是因为GPIO PIN Number是14
- CONFIG_GPIO_LED_0_IOMUX是IOMUX_PINCM36
重点是IOMUX_PINCM36_PF_GPIOA_DIO14
c
/* IOMUX_PINCM36[PF] Bits */
#define IOMUX_PINCM36_PF_UNCONNECTED ((uint32_t)0X00000000)
#define IOMUX_PINCM36_PF_GPIOA_DIO14 ((uint32_t)0X00000001)
#define IOMUX_PINCM36_PF_UART0_CTS ((uint32_t)0X00000002)
#define IOMUX_PINCM36_PF_SPI0_PICO ((uint32_t)0X00000003)
#define IOMUX_PINCM36_PF_UART3_TX ((uint32_t)0X00000004)
#define IOMUX_PINCM36_PF_TIMG12_CCP0 ((uint32_t)0X00000005)
#define IOMUX_PINCM36_PF_SYSCTL_CLK_OUT ((uint32_t)0X00000006)
- I2C中为什么PB2是34, 而PB3是35
MSPM0G3507 GPIO是从PA0开始到PA31, PA14的索引是14,而PB仍然从PA31的31索引开始编号,PB0则是32,PB1是33, PB2是34, PB3是35。
这是个人的推理结果
c
/* IOMUX_PINCM15[PF] Bits */
#define IOMUX_PINCM15_PF_UNCONNECTED ((uint32_t)0X00000000)
#define IOMUX_PINCM15_PF_GPIOB_DIO02 ((uint32_t)0X00000001)
#define IOMUX_PINCM15_PF_UART3_TX ((uint32_t)0X00000002)
#define IOMUX_PINCM15_PF_UART2_CTS ((uint32_t)0X00000003)
#define IOMUX_PINCM15_PF_I2C1_SCL ((uint32_t)0X00000004)
#define IOMUX_PINCM15_PF_TIMA0_CCP3 ((uint32_t)0X00000005)
#define IOMUX_PINCM15_PF_UART1_CTS ((uint32_t)0X00000006)
#define IOMUX_PINCM15_PF_TIMG6_CCP0 ((uint32_t)0X00000007)
#define IOMUX_PINCM15_PF_TIMA1_CCP0 ((uint32_t)0X00000008)
/* IOMUX_PINCM16[PF] Bits */
#define IOMUX_PINCM16_PF_UNCONNECTED ((uint32_t)0X00000000)
#define IOMUX_PINCM16_PF_GPIOB_DIO03 ((uint32_t)0X00000001)
#define IOMUX_PINCM16_PF_UART3_RX ((uint32_t)0X00000002)
#define IOMUX_PINCM16_PF_UART2_RTS ((uint32_t)0X00000003)
#define IOMUX_PINCM16_PF_I2C1_SDA ((uint32_t)0X00000004)
#define IOMUX_PINCM16_PF_TIMA0_CCP3_CMPL ((uint32_t)0X00000005)
#define IOMUX_PINCM16_PF_UART1_RTS ((uint32_t)0X00000006)
#define IOMUX_PINCM16_PF_TIMG6_CCP1 ((uint32_t)0X00000007)
#define IOMUX_PINCM16_PF_TIMA1_CCP1 ((uint32_t)0X00000008)