#define I2C_SLAVE_ADDRESS7 0xA0 #define SCL_H GPIO_SetBits(GPIOB, GPIO_Pin_10); //GPIOB->BSRR = GPIO_Pin_10 //端口位设置寄存器 #define SCL_L GPIO_ResetBits(GPIOB, GPIO_Pin_10); //GPIOB->BRR = GPIO_Pin_10 //端口位清除寄存器 #define SDA_H GPIO_SetBits(GPIOB, GPIO_Pin_11); //GPIOB->BSRR = GPIO_Pin_11 #define SDA_L GPIO_ResetBits(GPIOB, GPIO_Pin_11); //GPIOB->BRR = GPIO_Pin_11 #define SCL_read GPIOB->IDR & GPIO_Pin_10 //IDR端口输入数据寄存器 #define SDA_read GPIOB->IDR & GPIO_Pin_11 //IDR端口输入数据寄存器 谁能给解释一下 SCL_read 和 SDA_read 这两句话的定义,不太理解!谢谢。还有我模拟出来的时序SCL 不是方波 上升沿 有弧度,而且不小。下降沿 没有弧度,如何解释?谢谢 |
RE:软件模拟I2C 时序的问题
SDA_read 是读GPIO输入寄存器的值 读的是 数据的信号
I2C的通讯端口是需要加上拉电阻的.
RE:软件模拟I2C 时序的问题