完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
GPIOB_ModeCfg(GPIO_Pin_13 | GPIO_Pin_12, GPIO_ModeIN_PU);
#if(I2C_MODE == HOST_MODE) PRINT(“IIC Host modern”); 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 modern”); 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:rn”); for(i = 0; i 《 6; i++) { PRINT(“%02xrn”, RxData[i]); } #endif 例程里面提供的IIC例程如上所示,虽然做了很多改动,但是还是无法读写24C256.不知道错在哪里了,帮忙传一个可用的硬件IIC例程。谢谢 |
|
相关推荐
2个回答
|
|
我们这里提供的是一个例程,可以作为参考用,将主机的PB12、PB13分别上拉电阻到3.3v,阻值在2-5K之间,可以再进行尝试看看。如果没有实现你的功能可以软件模拟IIC。
|
|
|
|
我也是遇到一样的问题了,调试的代码可以运行就是不饿能点亮SSD1306的屏幕GPIO配置为上拉输入的是时候内部电阻是50K 我打算外部上拉一个2.2K的试试
|
|
|
|
只有小组成员才能发言,加入小组>>
453 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2865 浏览 2 评论
2351 浏览 1 评论
798浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
623浏览 1评论
487浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
350浏览 1评论
625浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 19:20 , Processed in 1.026336 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号