#ifndef _MCU_BSP_I2C_H_ #define _MCU_BSP_I2C_H_ #include #include #include #include "cpu.h" #include "os.h" #include "bsp_int.h" #include "bsp_sys.h" #include "lib_def.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/i2c.h" #include "driverlib/interrupt.h" #include "inc/hw_memmap.h" #include "inc/hw_i2c.h" #include "inc/hw_ints.h" #define MCU_BSP_I2C_ALL_NUM 8 #define MCU_BSP_I2C_SPEED100000 100000 #define MCU_BSP_I2C_SPEED400000 400000 #define MCU_BSP_I2C_MASTER 0 #define MCU_BSP_I2C_SLAVE 1 #define MCU_BSP_I2C_OFF 0 #define MCU_BSP_I2C_ON 1 #define MCU_BSP_I2C_WRITE_ENABLE 1 #define MCU_BSP_I2C_WRITE_DISABLE 0 #define MCU_BSP_I2C_READ_DISABLE 0 #define MCU_BSP_I2C_READ_ENABLE 1 /* IIC硬件上的配置 */ #define MCU_BSP_I2C0 0 #define MCU_BSP_I2C0_SCL_PIN_CONF GPIO_PB2_I2C0SCL #define MCU_BSP_I2C0_SDA_PIN_CONF GPIO_PB3_I2C0SDA #define MCU_BSP_I2C0_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_I2C0_SCL_GPIO GPIO_PORTB_BASE #define MCU_BSP_I2C0_SCL_GPIO_PIN GPIO_PIN_2 #define MCU_BSP_I2C0_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_I2C0_SDA_GPIO GPIO_PORTB_BASE #define MCU_BSP_I2C0_SDA_GPIO_PIN GPIO_PIN_3 #define MCU_BSP_I2C1 1 #define MCU_BSP_I2C1_SCL_PIN_CONF GPIO_PG0_I2C1SCL #define MCU_BSP_I2C1_SDA_PIN_CONF GPIO_PG1_I2C1SDA #define MCU_BSP_I2C1_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOG #define MCU_BSP_I2C1_SCL_GPIO GPIO_PORTG_BASE #define MCU_BSP_I2C1_SCL_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_I2C1_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOG #define MCU_BSP_I2C1_SDA_GPIO GPIO_PORTG_BASE #define MCU_BSP_I2C1_SDA_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_I2C2 2 #define MCU_BSP_I2C2_SCL_PIN_CONF GPIO_PL1_I2C2SCL #define MCU_BSP_I2C2_SDA_PIN_CONF GPIO_PL0_I2C2SDA #define MCU_BSP_I2C2_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOL #define MCU_BSP_I2C2_SCL_GPIO GPIO_PORTL_BASE #define MCU_BSP_I2C2_SCL_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_I2C2_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOL #define MCU_BSP_I2C2_SDA_GPIO GPIO_PORTL_BASE #define MCU_BSP_I2C2_SDA_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_I2C3 3 #define MCU_BSP_I2C3_SCL_PIN_CONF GPIO_PK4_I2C3SCL #define MCU_BSP_I2C3_SDA_PIN_CONF GPIO_PK5_I2C3SDA #define MCU_BSP_I2C3_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOK #define MCU_BSP_I2C3_SCL_GPIO GPIO_PORTK_BASE #define MCU_BSP_I2C3_SCL_GPIO_PIN GPIO_PIN_4 #define MCU_BSP_I2C3_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOK #define MCU_BSP_I2C3_SDA_GPIO GPIO_PORTK_BASE #define MCU_BSP_I2C3_SDA_GPIO_PIN GPIO_PIN_5 #define MCU_BSP_I2C4 4 #define MCU_BSP_I2C4_SCL_PIN_CONF GPIO_PK6_I2C4SCL #define MCU_BSP_I2C4_SDA_PIN_CONF GPIO_PK7_I2C4SDA #define MCU_BSP_I2C4_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOK #define MCU_BSP_I2C4_SCL_GPIO GPIO_PORTK_BASE #define MCU_BSP_I2C4_SCL_GPIO_PIN GPIO_PIN_6 #define MCU_BSP_I2C4_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOK #define MCU_BSP_I2C4_SDA_GPIO GPIO_PORTK_BASE #define MCU_BSP_I2C4_SDA_GPIO_PIN GPIO_PIN_7 #define MCU_BSP_I2C5 5 #define MCU_BSP_I2C5_SCL_PIN_CONF GPIO_PB0_I2C5SCL #define MCU_BSP_I2C5_SDA_PIN_CONF GPIO_PB1_I2C5SDA #define MCU_BSP_I2C5_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_I2C5_SCL_GPIO GPIO_PORTB_BASE #define MCU_BSP_I2C5_SCL_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_I2C5_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOB #define MCU_BSP_I2C5_SDA_GPIO GPIO_PORTB_BASE #define MCU_BSP_I2C5_SDA_GPIO_PIN GPIO_PIN_1 #define MCU_BSP_I2C6 6 #define MCU_BSP_I2C6_SCL_PIN_CONF GPIO_PA6_I2C6SCL #define MCU_BSP_I2C6_SDA_PIN_CONF GPIO_PA7_I2C6SDA #define MCU_BSP_I2C6_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_I2C6_SCL_GPIO GPIO_PORTA_BASE #define MCU_BSP_I2C6_SCL_GPIO_PIN GPIO_PIN_6 #define MCU_BSP_I2C6_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOA #define MCU_BSP_I2C6_SDA_GPIO GPIO_PORTA_BASE #define MCU_BSP_I2C6_SDA_GPIO_PIN GPIO_PIN_7 #define MCU_BSP_I2C7 7 #define MCU_BSP_I2C7_SCL_PIN_CONF GPIO_PD0_I2C7SCL #define MCU_BSP_I2C7_SDA_PIN_CONF GPIO_PD1_I2C7SDA #define MCU_BSP_I2C7_SCL_GPIO_CLK SYSCTL_PERIPH_GPIOD #define MCU_BSP_I2C7_SCL_GPIO GPIO_PORTD_BASE #define MCU_BSP_I2C7_SCL_GPIO_PIN GPIO_PIN_0 #define MCU_BSP_I2C7_SDA_GPIO_CLK SYSCTL_PERIPH_GPIOD #define MCU_BSP_I2C7_SDA_GPIO GPIO_PORTD_BASE #define MCU_BSP_I2C7_SDA_GPIO_PIN GPIO_PIN_1 int McuBspI2cInit(uint8_t I2cId, uint32_t I2cSpeed, uint8_t I2cMode, uint8_t SlaveAddress); int McuBspI2cSendData(uint8_t I2cId, uint8_t SlaveAddress, uint8_t *SendData, uint32_t SendLen); int McuBspI2cRecvData(uint8_t I2cId, uint8_t SlaveAddress, uint8_t *RecvData, uint32_t RecvLen); /* 修改IIC配置 */ int McuBspI2cModifyConf(uint8_t I2cId, uint32_t I2cSpeed, uint8_t I2cMode, uint8_t SlaveAddress); #endif