以下24C02的驱动好像不稳定,不更换24C02时,读写都正确,但是更换一个24C02,数据就读写不正确,在把之前的正常的24C02重新焊上去,也读写不正确,我已确认过24C02肯定是没问题的,硬件也没问题,请高手看看到底是那个出现了问题?驱动程序是我在当时AVR单片机移植过来的。 驱动程序请看附件。。 |
at24c02.pdf
下载49.63 KB, 下载次数: 10, 下载积分: ST金币 -1
哪位大哥有stm32f103c8t6的keil编程实例源码呀?求
能在一个程序中同时使用TIM的callback和uart的callback函数吗?
TCP客户端 周期性 发送数据,一段时间后会突然停止,是什么原因。
STM32F103VCT6有64K的RAM?
使用串口双机通信的问题
如何添加一个中断服务函数?
Proteus是否无法正确仿真STM32的开漏输出
Cortex m3内核是很特殊吗,为什么st公司的很多软件比如cubemx.ai唯独不支持m3内核的stm32f1系列
stm32f103c8t6串口发送大量hex数据失效。
STM32 CAN通讯收发异常
如果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是否工作的程序。
评分
查看全部评分
谢谢您,我在测试下