STM32学习——硬件IIC调试遇到的问题

本文讲述了在调试STM32IIC过程中遇到的两个问题:写入时卡在EV5事件,可能因未完成写入就进行读取;以及读取时卡在EV6。解决方法包括确保写操作完成后进行读操作,以及在关键点添加延迟或逻辑判断,必要时通过断电复位修复EEPROM状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序言

在调试STM32 IIC的时候,遇到了一些问题,在这里记录:

问题一:写入时卡死在EV5事件,无法等来标志位

EEPROM进入了一种状态,无法回复起始位的请求,就算重新烧入正确的程序也无法解除这种状态,必须通过断电重启的方法才能重置EEPROM

正确方法是先烧录进正确的程序,然后拔掉所有电源,让EEPROM断电一次,最后再次开机,自动运行正常程序,这样就可以了,否则会发生一些灵异BUG,比如两次烧录一样的程序,结果不一样,等等,这是由于外设没有复位导致的。

这种状态的产生多半是因为在程序中,EEPROM还没有写入完毕就进行了读取

问题2:读取时卡在EV6事件-无法等来标志位

这种情况的产生很有可能还是在EEPROM正在写入的时候,提前开始了读取

	I2C_EE_ByteWrite(&data,0x00);
	//delay_ms(15);
	EEPROM_RD_Byte(0x00, &data_read, 1);

如图没有添加延迟或者正确的逻辑判断就会导致在第一次运行Debug的时候,卡在EV6

然后再次运行正确的代码,在写入的时候就会卡在EV5,出现问题1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值