|

楼主 |
发表于 2021-8-28 18:23:19
|
显示全部楼层
为此还特意做了个实验
这样直接进去,库函数的就正常
void IIC_Start()
{
GPIO_WriteHigh(GPIOB, GPIO_PIN_4);
GPIO_WriteHigh(GPIOB, GPIO_PIN_5);
GPIO_WriteLow(GPIOB, GPIO_PIN_5);
GPIO_WriteLow(GPIOB, GPIO_PIN_4);
}
/**********************************************
//IIC Stop
**********************************************/
void IIC_Stop()
{
GPIO_WriteHigh(GPIOB, GPIO_PIN_4);
GPIO_WriteLow(GPIOB, GPIO_PIN_4);
GPIO_WriteLow(GPIOB, GPIO_PIN_5);
GPIO_WriteHigh(GPIOB, GPIO_PIN_5);
}
void IIC_Wait_Ack()
{
GPIO_WriteHigh(GPIOB, GPIO_PIN_4);
GPIO_WriteLow(GPIOB, GPIO_PIN_4);
}
然后 是这个寄存器的这样就不正常。
void IIC_Start()
{
PB_ODR_ODR4=1;
PB_ODR_ODR5=1;
PB_ODR_ODR5=0;
PB_ODR_ODR4=0;
}
/**********************************************
//IIC Stop
**********************************************/
void IIC_Stop()
{
PB_ODR_ODR4=1;
PB_ODR_ODR4=0;
PB_ODR_ODR5=0;
PB_ODR_ODR5=1;
}
void IIC_Wait_Ack()
{
PB_ODR_ODR4=1;
PB_ODR_ODR4=0
} |
|