20231023_InSituLab_emb/InsituLabProject_QRS/Src/Usr/Bsp/McuBspI2c.h
Rjh913828050 4e26d518da 类型:更细
内容:更新十四五程序
人员:任家豪
2024-07-31 08:56:07 +08:00

131 lines
4.8 KiB
C

#ifndef _MCU_BSP_I2C_H_
#define _MCU_BSP_I2C_H_
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#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