好,多谢。
void i2c_slave_port_init( void )
{
GPIO_InitTypeDef GPIO_InitStructure;
/*************************GPIO*******************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14| GPIO_Pin_15 ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
I2C_SCL_H();
I2C_SDA_H();
I2C_SDA_IN_SET(); //20230104
I2C_SCL_IN_SET();
}
static u8 ucI2C_recv_nmlbyte(void)
{
volatile u8 i, tmp; //11.30DT¸Ä
tmp = 0x00;
I2C_SDA_IN_SET();
WaitIIC_SCLDown();
for(i=0;i<8;i++)
{
WaitIIC_SCLUp();
tmp<<=1;
if(I2C_SDA_IN())
tmp++;
WaitIIC_SCLDown();
}
WaitIIC_SCLDown();
Delay_us(2); //¼óÑóê±
I2C_SDA_OUT_SET();
I2C_SDA_L();
WaitIIC_SCLUp();
WaitIIC_SCLDown();
return tmp;
} |