能提供一個CH582可用的硬件IIC讀寫24C256的例程嗎?
????GPIOB_ModeCfg(GPIO_Pin_13?|?GPIO_Pin_12,?GPIO_ModeIN_PU);

#if(I2C_MODE?==?HOST_MODE)
????PRINT("IIC?Host?mode\r\n");
????I2C_Init(I2C_Mode_I2C,?400000,?I2C_DutyCycle_16_9,?I2C_Ack_Enable,?I2C_AckAddr_7bit,?TxAdderss);
????while(I2C_GetFlagStatus(I2C_FLAG_BUSY)?!=?RESET);

????I2C_GenerateSTART(ENABLE);

????while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));
????I2C_Send7bitAddress(RxAdderss,?I2C_Direction_Transmitter);

????while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

????while(i?<?6)
????{
????????if(I2C_GetFlagStatus(I2C_FLAG_TXE)?!=?RESET)
????????{
????????????I2C_SendData(TxData[i]);
????????????i++;
????????}
????}

????while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
????I2C_GenerateSTOP(ENABLE);

#elif(I2C_MODE?==?SLAVE_MODE)
????PRINT("IIC?Slave?mode\r\n");
????I2C_Init(I2C_Mode_I2C,?400000,?I2C_DutyCycle_16_9,?I2C_Ack_Enable,?I2C_AckAddr_7bit,?RxAdderss);

????while(!I2C_CheckEvent(I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED));

????while(i?<?6)
????{
????????if(I2C_GetFlagStatus(I2C_FLAG_RXNE)?!=?RESET)
????????{
????????????RxData[i]?=?I2C_ReceiveData();
????????????i++;
????????}
????}

????PRINT("RxData:\r\n");
????for(i?=?0;?i?<?6;?i++)
????{
????????PRINT("%02x\r\n",?RxData[i]);
????}

#endif

例程里面提供的IIC例程如上所示,雖然做了很多改動,但是還是無法讀寫24C256.不知道錯在哪里了,幫忙傳一個可用的硬件IIC例程。謝謝


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

公司的研發(fā)部無法上網(wǎng),所以不能上傳實(shí)際寫的代碼。


我們這里提供的是一個例程,可以作為參考用,將主機(jī)的PB12、PB13分別上拉電阻到3.3v,阻值在2-5K之間,可以再進(jìn)行嘗試看看。如果沒有實(shí)現(xiàn)你的功能可以軟件模擬IIC。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频