当前位置:首页 > 单片机 > 单片机
[导读]这里咱们说3个点1.检查IIC总线上是否有指定地址的器件2.IIC读取数据3.IIC写数据下面来一个一个详细说明1.检查IIC总线上是否有指定地址的器件1.判断是否总线忙,如果忙则等待2.产生起始位3.等待起始位产生完成4.发送器

这里咱们说3个点
1.检查IIC总线上是否有指定地址的器件
2.IIC读取数据
3.IIC写数据
下面来一个一个详细说明

1.检查IIC总线上是否有指定地址的器件

1.判断是否总线忙,如果忙则等待2.产生起始位3.等待起始位产生完成4.发送器件地址(这里选择读写都是可以的)5.等待是否有ACK位回应,(这里有两种判断方法1.通过判断ACK标志2.通过判断ADDR标志),最好使用ADDR标志位6.清楚ADDR标志位7.产生停止位8.通过判断是否有ACK,就可以判断是否有指定地址的器件123456789

2.IIC读取数据

1.判断是否总线忙,如果忙则等待2.产生起始位3.等待起始位产生完成4.发送器件地址,这里方向上选择写数据5.等待发送完成,通过判断ADDR标志位是否置位6.清除ADDR标志位7.同时判断TXE位,这个在发送数据完成之后,也会被置位8.发送要读取内存的地址9.等待TXE位置位10.再次发送起始位11.等待起始位产生完成12.发送器件地址,这里方向上选择读数据13.等待发送完成,通过判断ADDR标志位是否置位14.使能LAST位,使能这个,就能做到在传输最后一个数据的时候,自动产生NACK14.开始用DMA传输下面的数据12345678910111213141516

3.IIC写数据

1.判断是否总线忙,如果忙则等待2.产生起始位3.等待起始位产生完成4.发送器件地址,这里方向上选择写数据5.等待发送完成,通过判断ADDR标志位是否置位6.清除ADDR标志位7.同时判断TXE位,这个在发送数据完成之后,也会被置位8.发送要读取内存的地址9.等待TXE位置位10.开始用DMA传输下面的数据11.在DMA传输完成中断中产生停止位


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭