20230731_XiaoFuZi_emb/ZheDaXiaoFuZiBoot/Src/Usr/Bsp/McuBspI2c.h
Rjh913828050 a8560d741e 类型:重构
内容:重新整理项目文件分类
人员:任家豪
2023-10-08 16:10:23 +08:00

60 lines
3.1 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 0x30f // 如果为主模式为该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