完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
使用的设备为STM32,i2c双机通讯,主机接收n个字节:
void I2C_ByteRead(void) { while(I2C_GetFlagStatus(I2C2,I2C_FLAG_BUSY)); I2C_GenerateSTART(I2C2, ENABLE); //EV5 while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_MODE_SELECT)); //while(!((uint16_t)(I2C2->SR1)&(uint16_t)(0x0001)));//SB=1 //while(((uint16_t)(I2C2->SR2)&(uint16_t)(0x0003))!=0x0003);//BUSY=1 I2C_Send7bitAddress(I2C2, I2C2_SLAVE_ADDRESS7, I2C_Direction_Transmitter); //EV6 while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); //while(((uint16_t)(I2C2->SR1)&(uint16_t)(0x0002))!=0x0002);//?????????? //while(((uint16_t)(I2C2->SR2)&(uint16_t)(0x0003))!=0x0003); while(RxCounter!=BUFFER_SIZE) { if(RxCounter==(BUFFER_SIZE-1)) { if(I2C_GetFlagStatus(I2C2, I2C_FLAG_RXNE)==1) { I2C_AcknowledgeConfig(I2C2, DISABLE); I2C_GenerateSTOP(I2C2, ENABLE); } } //EV7 while(!(I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_BYTE_RECEIVED))); //while(((uint16_t)(I2C2->SR1)&(uint16_t)(0x0040))!=0x0040); //while(((uint16_t)(I2C2->SR2)&(uint16_t)(0x0003))!=0x0003); RxBuffer[RxCounter++] = I2C_ReceiveData(I2C2); } I2C_GenerateSTOP(I2C2, ENABLE); I2C_AcknowledgeConfig(I2C2, ENABLE); RxCounter=0; } 从机发送n个字节: void I2C_ByteWrite() { while(((uint16_t)(I2C2->SR1)&(uint16_t)(0x0002))!=0x0002);//ADDR=1 receive address matched while(((uint16_t)(I2C2->SR2)&(uint16_t)(0x0006))!=0x0006);//BUSY=1+MSL=0+TRA=1 I2C_SendData(I2C2,TxBuffer[TxCounter++]); while(TxCounter!=BUFFER_SIZE) { while(((uint16_t)(I2C2->SR1)&(uint16_t)(0x0080))!=0x0080);//DRΪ¿ÕʱΪ1£¬Ð´ÈëDRÇå³ý¸Ãλ I2C_SendData(I2C2,TxBuffer[TxCounter++]); } while(((uint16_t)(I2C2->SR1)&(uint16_t)(0x0010))!=0x0010); TxCounter=0; } |
|
相关推荐
7个回答
|
|
|
STM32的I2C建议采用模拟。
|
|
|
|
|
|
|
|
|
|
|
|
请问,用什么来模拟调I2C啊
|
|
|
|
|
|
普通IO就可以,关键是时序
|
|
|
|
|
|
你先用官方的例子跑个看看能行不,如果行,那就是自己配置的有问题。
|
|
|
|
|
|
那可以在软件里边修改地址啊
|
|
|
|
|
|
软件模拟I2C网上应该很多例程,可以参考下。
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2776 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2379 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2255 浏览 0 评论
2367 浏览 1 评论
1625 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:47 , Processed in 0.921956 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3107