20230731_XiaoFuZi_emb/ZheDaXiaoFuZi/Src/Usr/Bsp/McuBspI2c.h

60 lines
3.1 KiB
C
Raw Normal View History

#ifndef _MCU_BSP_I2C_H_
#define _MCU_BSP_I2C_H_
#include "stm32f1xx_hal.h"
#define MCU_BSP_I2C_MASTER 0
#define MCU_BSP_I2C_SALVE 1
#define MCU_BSP_I2C_REG 2 // 即从设备带寄存器
/* I2C1的配置 */
#define MCU_BSP_I2C1_USE_FLAG 1 // 硬件电路是否存在该功能
#define MCU_BSP_I2C1_ID 1
#define MCU_BSP_I2C1_CLOCKSPEED 400000 // 配置时钟速率400k
#define MCU_BSP_I2C1_DUTYCYCLE I2C_DUTYCYCLE_2 // I2C的占空比为
#define MCU_BSP_I2C1_I2C_ADDRESS1 0x0f // 如果为主模式为该I2C的地址如果从模式为I2C的第一个从地址
#define MCU_BSP_I2C1_ADDRESS_MODE I2C_ADDRESSINGMODE_7BIT // 7位地址寻址
#define MCU_BSP_I2C1_DUALADDRESS_MODE I2C_DUALADDRESS_DISABLE // 主模式下,不启用双从地址
#define MCU_BSP_I2C1_I2C_ADDRESS2 0xff // 如果为主模式则不会被使用如果从模式为I2C的第二个从地址
#define MCU_BSP_I2C1_GENERALCALL_MODE I2C_GENERALCALL_DISABLE // 广播模式失能
#define MCU_BSP_I2C1_NOSTRETCH_MODE I2C_NOSTRETCH_DISABLE // 时钟延长模式失能
#define MCU_BSP_I2C1_SCL_GPIO GPIOB
#define MCU_BSP_I2C1_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_I2C1_SCL_GPIO_PIN GPIO_PIN_6
#define MCU_BSP_I2C1_SDA_GPIO GPIOB
#define MCU_BSP_I2C1_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_I2C1_SDA_GPIO_PIN GPIO_PIN_7
/* I2C2的配置 */
#define MCU_BSP_I2C2_USE_FLAG 1 // 硬件电路是否存在该功能
#define MCU_BSP_I2C2_ID 2
#define MCU_BSP_I2C2_CLOCKSPEED 400000 // 配置时钟速率400k
#define MCU_BSP_I2C2_DUTYCYCLE I2C_DUTYCYCLE_2 // I2C的占空比为
#define MCU_BSP_I2C2_I2C_ADDRESS1 0x30 // 如果为主模式为该I2C的地址如果从模式为I2C的第一个从地址
#define MCU_BSP_I2C2_ADDRESS_MODE I2C_ADDRESSINGMODE_7BIT // 7位地址寻址
#define MCU_BSP_I2C2_DUALADDRESS_MODE I2C_DUALADDRESS_DISABLE // 主模式下,不启用双从地址
#define MCU_BSP_I2C2_I2C_ADDRESS2 0xff // 如果为主模式则不会被使用如果从模式为I2C的第二个从地址
#define MCU_BSP_I2C2_GENERALCALL_MODE I2C_GENERALCALL_DISABLE // 广播模式失能
#define MCU_BSP_I2C2_NOSTRETCH_MODE I2C_NOSTRETCH_DISABLE // 时钟延长模式失能
#define MCU_BSP_I2C2_SCL_GPIO GPIOB
#define MCU_BSP_I2C2_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_I2C2_SCL_GPIO_PIN GPIO_PIN_10
#define MCU_BSP_I2C2_SDA_GPIO GPIOB
#define MCU_BSP_I2C2_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_I2C2_SDA_GPIO_PIN GPIO_PIN_11
int McuBspI2cInit(unsigned char I2cId);
int McuBspI2cSendData(unsigned char type, unsigned char I2cId, unsigned short DevAddress, unsigned short MemAddress,
unsigned short MemAddSize, unsigned char *pData, unsigned short Size);
int McuBspI2cRecvData(uint8_t type, uint8_t I2cId, uint16_t DevAddress, uint16_t MemAddress,
uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
/* IIC SLEEP */
void McuBspI2cSleep(void);
/* IIC WakeUp */
void McuBspI2cWakeUp(void);
#endif