你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
stm1024 发表于 2018-3-28 18:07 你的STM32在作为主机发送数据到IIC总线上时,配置为输出模式,这个OK,但是需要从PCF8563中得到应答,相当 ...
wenyangzeng 发表于 2018-3-26 17:30 楼主在发送函数 I2C_Send_Byte()中的变量txd一会儿右移: (txd&0x80>>7) 一会儿左移:
是的,有方向改变的语句
for(t=0;t<8;t++)
{
IIC_SDA=(txd&0x80)>>7;
txd<<=1;
delay_us(2);
IIC_SCL=1;
delay_us(2);
IIC_SCL=0;
delay_us(2);
}
(txd&0x80)>>7是为了取txd的最高位, txd<<=1; 是将下一位数据移位到最高位,就可以(txd&0x80)>>7取走最高位
设置方向的确是SDA_IN
#define SDA_IN() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;}
#define SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;}