中级会员
 
- 积分
- 270
- 金钱
- 270
- 注册时间
- 2019-9-1
- 在线时间
- 61 小时
|
1金钱
原子哥,我用的stm32f103c8t6芯片,使用战舰程序里的IIC实验程序,更改端口到,PB10,PB11,两个引脚,不能读写24c02里的数据,请原子哥看看是哪里出了问题,其他部分没有改动,主程序里,只有,读出,自加,写入,打印,printf出来的数据就是不变,找不到哪里出的问题,
//初始化
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE ); //
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_10|GPIO_Pin_11); //
}
//IO方向设置
#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)8<<12;}//
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)3<<12;}//
//IO操作函数
#define IIC_SCL PBout(10) //SCL
#define IIC_SDA PBout(11) //SDA
#define READ_SDA PBin(11) //êäèëSDA
int main(void)
{
u16 i=8;
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
uart_init(115200); //′®¿ú3õê¼»ˉÎa115200
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
AT24CXX_Init(); //IIC3õê¼»ˉ
// while(AT24CXX_Check())//24c02检测
// {
// delay_ms(500);
// LED0=!LED0;//DS0éá˸
// }
while(1)
{
delay_ms(1);
LED0=!LED0;//DS0éá˸
i=AT24CXX_ReadOneByte(1);
i++;
AT24CXX_WriteOneByte(1,i);
printf("i=%d, \n", i);
}
}
|
|