完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这种循环都应加超时。
|
|
|
|
while(I2C_SR3 & 0x02) { i++; if(i > 50) { I2C_GenerateSTOP(ENABLE); break; } } 现在加了超时,连接还是建立不起来。串口打印出IIC_SR3寄存器值为0x02;…………………… |
|
|
|
加看门狗,等它死了就复位,目前只能这样了
|
|
|
|
PDP(等离子显示面板)- 用于制造“平面”的壁式显示屏
|
|
|
|
BitStatus IIC_BUSY(void) { BitStatus bit_status; bit_status=(I2C->SR3&0X02)>>1; if(bit_status==1) //忙 { iic_bucy_count++; if(iic_bucy_count>5) //计算忙的次数 I2C->CR2|=0X80; //软件复位 if(iic_bucy_count>100) //计算忙的次数 { I2C->CR1&=~0X01; // PE off i2C iic_bucy_count=0; } return 1; 这样可以解决一直处于总线已经为高电平 ,还为忙的情况 ; |
|
|
|
在这里有个问题:我发现用镊子触碰数据线 会引起 读寄存器忙标志为空闲,测总线上都为高电平。但就是发不出来起始位 (起始位寄存器SB=0);试过通过软件复位 和关IIC都未能解决,,这时用镊子触碰时钟又可以正常通信了。 懂的答一下。谢谢
|
|
|
|
不会是受干扰了吧
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
657 浏览 0 评论
2334 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2137 浏览 3 评论
4767 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2282 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 11:36 , Processed in 0.660816 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号