以下24C02的驱动好像不稳定,不更换24C02时,读写都正确,但是更换一个24C02,数据就读写不正确,在把之前的正常的24C02重新焊上去,也读写不正确,我已确认过24C02肯定是没问题的,硬件也没问题,请高手看看到底是那个出现了问题?驱动程序是我在当时AVR单片机移植过来的。 驱动程序请看附件。。 |
at24c02.pdf
下载49.63 KB, 下载次数: 10, 下载积分: ST金币 -1
自己画的STM32F103RCT6的板子下载识别不到芯片。
adc采集电压
STM32 CAN通讯收发异常
STM32硬件IIC
STM32IDE工程内如何访问、计算得到当前程序flash已经使用的情况?
数据丢失
STM32F107RBT6 页擦除函数返回值成功但目标扇区数据并未擦除
L6235Q驱动MAXON三相无刷直流电机,FWD引脚接入PWM波,占空比50%的时候电机不转动,其他占空比电机转动,数据手册并没提及,请问有什么依据吗?
板子肯定没问题,用cubeprogrammer烧录报错
STM32F103ZET6 CS信号无法拉高
如果24C02没问题的,硬件也没问题,那就还是程序问题。
IO必须用OD模式,不需要切换方向,只需要输出1即可从输入寄存器读回实际IO的输入状态。注意IO的默认输出状态是0还是1,默认配置为全输入状态;如果要输出的话,首先全输出1,然后再按照I2C的流程来;如果只挂一个I2C设备的话,不涉及I2C总线锁死的问题。
评分
查看全部评分
为什么不用切换方向呢??我记得IIC通信时,SDA方向很重要呀
评分
查看全部评分
不需要再解释了吧,这句话看到句号那里了吗?
我的程序就是没有切换IO口方向的,直接读回输入寄存器实际IO的输入状态。如果加了IO口切换方向后,读写都不能成功
你好,程序能发我看看吗??
评分
查看全部评分
用模拟I2C时, 有两种方法
1, SDA 配置为OD 外加上拉电阻, 无需切换IO方向
2, SDA 配置为PP 外加上拉电阻, 接收时需要切换IO方向
而楼主是属于错误的第三种方法
你说之前用的24C02是可以的, 那可以告诉你的, 它(之前的24C02)之所以行, 是因为它在读取ACK时,它把一输出为高的IO硬生生的把它拉低,这种情况等同于两个输出的IO, 一个输出高另一个输出低, 接一块, 结果是高是低那是看运气吧
评分
查看全部评分
建议用现成原子的程序测试下,然后再这个基础上改。 尤其是那个检测24c02是否工作的程序。
评分
查看全部评分
谢谢您,我在测试下