代码改变世界

STM32f10x下软件模拟IIc读写si5326问题

2013-08-17 17:59  居安  阅读(572)  评论(0编辑  收藏  举报

  关于在STM32下软件模拟IIC的资料已经有很多,在项目中,使用软件模拟就是出问题,而主要问题便是每次向si5326芯片发送数据或者地址后,总是收不到回应。刚开始就是找不到原因。偶然间找到一些关于si5326的IIC时序资料,仔细一推敲,发现自己模拟的始终周期与si5326的正常工作时序周期有差别。我就用的一般的5微秒,而正常的是37毫秒。这个差距...这里我是犯了经验主意错误。以往接触的芯片都在几微妙,这个居然....毫秒级的。

  接下来,上示波器,测试。数据是送出去了的,但是就是没有ack。但是发现一个微妙的现象,在等待ack的那个时序周期,电平被拉到半高状态,有过很多大胆的猜测和想法。以为是电路问题,以为是GPIO口设置问题,后来我仔细读了代码,才发现是自己太粗心了,在接收ack的周期没有将GPIO口的状态从发送改为接收状态。

  改过,改过。测试,正确,ok,收工~