今天用STM8的I2C,硬件的,我的初始化程序如下:
void I2C_Init(void)
{
I2C_CR1_PE = 0;
I2C_FREQR_FREQ = 0x01;
I2C_TRISER_TRISE = 0x02;
I2C_CCRL = 0x05;
I2C_CCRH = 0x00;
I2C_CR1_PE = 1;
I2C_CR2_POS = 1;
}
我的时钟用的是内部的16M,发现BUSY位一直是1,不管是初始化前还是初始化后。当我不判断BUSY位的时候,直接置START,我在IO引脚上没有量出来有任何反应,而且SB位也一直是0。
请教各位高手这BUSY位一直是1是什么原因啊,是我频率和时钟有问题吗,PB4,PB5要设成开漏输出还是输入。
这两个引脚做IO用的时候没有问题 |