完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在调试使用IIC作为从机接收和发送数据,用两个STM8的MCU进行通信,但是现在有一个问题,当主机先打开电源,从机再打开电源,主机可以正常接收到从机发送来的数据,但是如果从机不断电,主机断电再上电,主机则无法接收到数据。主机采用模拟的方式,重复读取数据。从机程序如下:@far @interrupt void I2C_IRQHandle(void)
{ if((I2C_SR1 & 0X02) == 0x02) // 判读地址是否匹配 addr = 1; { temp1 = I2C_SR1; temp3 = I2C_SR3; } else if((I2C_SR1&0x40) == 0x40) { i = 0; addr = I2C_DR; } else if((I2C_SR1&0x80) == 0x80) //发送数据 txe = 1 { if(addr == 0x80) I2C_DR = s1; if(addr == 0x90) I2C_DR = s2; i++; if(i == SIZE) { i = 0; } } else if(I2C_SR2&0x04) { nCounter++; I2C_SR2 &= ~0x04; I2C_CR2 |= 0x02; } }, 请问下各位大神,这是什么原因呢? |
|
相关推荐
6个回答
|
|
你的上拉电阻,上拉电平是主机还是从机提供的?如果是主机提供的,关掉主机就没有上拉电平,从机可能会误以为要通信,可能会造成从机I2c错误吧
|
|
|
|
我现在主机从机都不断电,主机里面采取循环读取,第二次也是读取不到数据啊,我想知道我的从机程序有哪里需要改正的么?
|
|
|
|
主机采用3.3V供电,从机采用5V供电,通信不正常,有解决办法吗?
|
|
|
|
用示波器或逻辑分析仪看看波形
|
|
|
|
不错的文章,谢谢分享
|
|
|
|
楼主从站是硬件从站?能不能上一个完整的从站程序啊,
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:38 , Processed in 1.117958 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号