查看: 4763|回复: 1

[原创] 关于KEAZ128的软件模拟IIC读出的数据一直是0x00问题解决

[复制链接]
  • TA的每日心情
    开心
    2019-11-12 13:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    45

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    415
    最后登录
    2023-12-19
    发表于 2019-11-13 14:35:48 | 显示全部楼层 |阅读模式
    本帖最后由 apphia 于 2019-11-13 14:48 编辑

    这个问题折腾了我好几天,在论坛上搜了好多的资料,但还是没有解决,今天跟大家分享一下,我的软件模拟I2C代码是参考他的:https://www.nxpic.org.cn/module/foru ... 16810&highlight=I2C,用示波器查看SCL和SDA的波形,都正常,如下图,按理我是应该能读到0xAF这个数据的,但是用串口读出IIC_Read_Byte()返回的这个值就一直是0x00,一开始以为是EEPROM不能用,就用 原子哥的战舰板子的EEPROM换了下,还是不行,于是我用了个最愚蠢的办法找问题,原子哥的战舰板是正常的,我用那个板子写一个数(0xAF)在地址0上,然后拆了EE焊接在KEAZ的板子上,结果读地址0的数据,出来还是0x00,于是排除EEPROM坏的可能性,然后我就读GPIOA 的 PDDR,PIDR(如下图), PDIR的寄存器值,发现这个PIDR寄存器的值按理应该是0的,结果是1,于是就加了个这个操作:GPIOA->IDR = GPIOA->IDR&0xfffffffb,结果就可以了,找了好几天。。
    1.png
    2.png
    3.png
    4.png
    5.png

    myiic.zip

    3.61 KB, 下载次数: 18, 下载积分: 威望 1

    myiic

    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2019-12-4 13:29:06 | 显示全部楼层
    感谢楼主的经验分享!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-7 23:38 , Processed in 0.072240 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表