使用GPIO引脚模拟SDA和SCL总线实现软件模拟IIC通信,IIC的具体通信协议层和物理层链接:
- #ifndef __BSP_IIC_H
- #define __BSP_IIC_H
- #include "stm32f10x.h"
- #define SCL_PORT GPIOA
- #define SCL_PIN GPIO_Pin_2
- #define SCL_MOOD GPIO_Mode_Out_OD
- #define SCL_SPEED GPIO_Speed_50MHz
- #define SDA_PORT GPIOA
- #define SDA_PIN GPIO_Pin_3
- #define SDA_MOOD GPIO_Mode_Out_OD
- #define SDA_SPEED GPIO_Speed_50MHz
- #define SDA_1() GPIO_SetBits(SDA_PORT, SDA_PIN)
- #define SDA_0() GPIO_ResetBits(SDA_PORT, SDA_PIN)
- #define SCL_1() GPIO_SetBits(SCL_PORT, SCL_PIN)
- #define SCL_0() GPIO_ResetBits(SCL_PORT, SCL_PIN)
- #define SDA_READ GPIO_ReadInputDataBit(SDA_PORT, SDA_PIN)
- /* ACK原型为acknowledge,意为:报告已收到 */
- void Delay(void);
- void IIC_START(void);
- void IIC_STOP(void);
- void IIC_ACK(void);
- void IIC_NACK(void);
- uint8_t IIC_ReadACK(void);
- void IIC_SendByte(uint8_t data) ;
- uint8_t IIC_ReadByte(void);
- void IIC_GPIO_Config(void);
- #endif /* __BSP_IIC_H */
复制代码 转载自:Aspirant-GQ
如有侵权请联系删除
|