123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef __ATK_MS6050_IIC_H
- #define __ATK_MS6050_IIC_H
- #include "stm32f1xx_hal.h"
- #include "core_cm3.h" // 根据你的MCU核心调整相应的头文件,例如: core_cm3.h, core_cm7.h
- /* 引脚定义 */
- #define ATK_MS6050_IIC_SCL_GPIO_PORT GPIOB
- #define ATK_MS6050_IIC_SCL_GPIO_PIN GPIO_PIN_10
- #define ATK_MS6050_IIC_SCL_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0)
- #define ATK_MS6050_IIC_SDA_GPIO_PORT GPIOB
- #define ATK_MS6050_IIC_SDA_GPIO_PIN GPIO_PIN_11
- #define ATK_MS6050_IIC_SDA_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0)
- /* IO操作 */
- #define ATK_MS6050_IIC_SCL(x) do{ x ? \
- HAL_GPIO_WritePin(ATK_MS6050_IIC_SCL_GPIO_PORT, ATK_MS6050_IIC_SCL_GPIO_PIN, GPIO_PIN_SET) : \
- HAL_GPIO_WritePin(ATK_MS6050_IIC_SCL_GPIO_PORT, ATK_MS6050_IIC_SCL_GPIO_PIN, GPIO_PIN_RESET); \
- }while(0)
- #define ATK_MS6050_IIC_SDA(x) do{ x ? \
- HAL_GPIO_WritePin(ATK_MS6050_IIC_SDA_GPIO_PORT, ATK_MS6050_IIC_SDA_GPIO_PIN, GPIO_PIN_SET) : \
- HAL_GPIO_WritePin(ATK_MS6050_IIC_SDA_GPIO_PORT, ATK_MS6050_IIC_SDA_GPIO_PIN, GPIO_PIN_RESET); \
- }while(0)
- #define ATK_MS6050_IIC_READ_SDA() HAL_GPIO_ReadPin(ATK_MS6050_IIC_SDA_GPIO_PORT, ATK_MS6050_IIC_SDA_GPIO_PIN)
- /* 操作函数 */
- void atk_ms6050_iic_start(void); /* 产生IIC起始信号 */
- void atk_ms6050_iic_stop(void); /* 产生IIC停止信号 */
- uint8_t atk_ms6050_iic_wait_ack(void); /* 等待IIC应答信号 */
- void atk_ms6050_iic_ack(void); /* 产生ACK应答信号 */
- void atk_ms6050_iic_nack(void); /* 不产生ACK应答信号 */
- void atk_ms6050_iic_send_byte(uint8_t dat); /* IIC发送一个字节 */
- uint8_t atk_ms6050_iic_read_byte(uint8_t ack); /* IIC接收一个字节 */
- void atk_ms6050_iic_init(void); /* 初始化IIC接口 */
- void DWT_Delay_Init(void); // 初始化DWT延时函数
- #endif
|