<i class="pstatus"> 本帖最后由 小小菜 于 2014-3-23 00:56 编辑 </i><br>
<br><p>
之前一直用着stm8的片子,但从来没用过它的IIC。知道在网上对这个IIC是骂声一片,但是大多看到说是硬件有bug,可是却也没说有啥bug!</p><p>
现在做点小东西,需要用到这个IIC,拿着以前旧的开发板,用24C02这老掉牙的片子,总算是调了出来,简单试了下,还行!</p><p>
用的是STM8S003,我想着大概用过stm8的都用过吧,哈哈性价比奇高。</p><p> 有一点要注意的是引脚的配置,手册里没说明,直接用默认配置悬浮输入。而对时序的操作最重要的一点便是理清它里面的各个事件,说实话,却实麻烦,不过对着手册一个一个来,还是没有问题的。</p><p>
ADDR,BTF这两个标志位的清零需要注意下,都得先读取SR1。最重要的一点是,完成本次通讯或者本次通讯出现意外退出后,必须释放总线,不然即使程序退出IIC通讯,依然占据总线不放,导致下次通讯必然失败。</p><p>
不过有一点还是不太理解,对于里边的时钟控制寄存器,TRISE,用来控制时钟边沿,但是实际试的时候,在示波器里查看波形,发现效果不明显,或者说没啥效果,时钟上升沿稍微有点慢,但也可以接受,我这里用的是3.3V电源,4K7上拉,挂载一个从设备。手册里说支持标准和快速两种模式,我用400K简单测试了下,没有问题(未长时间,大数据量的测试)。</p><p>
上传下工程文件,STVD,STM8S003F3P6,直接在仿真里查看数据。</p><br><p>
8S003,主从机,一主一从。一个片子作为主机,通过IIC向另一片子发送数据。工程文件,6楼。 </p><p>链接: https://pan.baidu.com/s/1GVDj14s7QPa9il05deiw_A 提取码: 4pec</p><p><br></p>
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
没去看那个···!
目前遇到的一个情况是有时候会出现总线忙,导致通讯失败,可以通过配置引脚的模式自己发送结束信号还有释放总线,来恢复通讯···!
一周热门 更多>