发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表
打印
[LKS32 软件]

基于LKS081C8T8的IIC通讯发送与接收数据的实现

[复制链接]
1523|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ajzh|  楼主 | 2023-5-16 10:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ajzh 于 2023-5-16 10:48 编辑

#技术资源# #每日话题# #申请原创#  
IIC通讯实验
1、实验概述  本实验通过两块LKS32MC081的demo板进行IIC通讯的发送和接收实验。实验使用P1.10作为SCL时钟信号线,P1.11作为SDA数据信号线,将两块081的核心板对应的P1.10与P1.11用杜邦线进行连接。由于IIC通讯需要进行上拉,因此需要在程序中对P1.10与P1.11进行开启上拉。081系列的IIC通讯不使用DMA进行搬运时需要利用IIC的中断进行判断,实现IIC的数据传输。

2、IIC通讯特点

图2.1  IIC总线物理拓扑图
  在物理连接上分别由 SDA(串行数据线) SCL(串行时钟线)及上拉电阻组成。通信原理是通过对 SCL SDA线高低电平时序的控制,来产生 IIC 总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平,否则无法输出高电平。
IIC 总线接口连接微控制器和串行 IIC 总线。它提供多主机功能,控制所有IIC总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式。
IIC有以下特点:
①   IIC是半双工,而不是全双工;
②   IIC是真正的多主机总线,(对比SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏;
③   起始和终止信号都是由主机发出的,连接到I2C总线上的器件,若具有IIC总线的硬件接口,则很容易检测到起始和终止信号;
④   在起始信号后必须发送一个7位从机地址+1位方向位,用“0”表示主机发送数据,“1”表示主机接收数据;
⑤   每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据;
⑥   起始信号是必需的,结束信号和应答信号,都可以不要。
注:实际使用中,一般是单片机作为主机,其它器件作为从机,单片机先向器件发送信息表示要读取数据,之后转变传输方向,器件发送数据到单片机。
图2.2  IIC传输时序图
  如图2.2所示为IIC基本的传输时序图,空闲状态时SCLSDA均为高电平,在主机发出START信号后,SCL根据设定的波特率产生时钟信号,SDA首先输出7位从机地址+1位方向位,然后进行8位数据位的传输。需要注意的是,在一个字节传输的 8 个时钟后的第 9 个时钟期间,从机必须回送一个应答位(ACK)给发送器,每个字节后会跟随一个 ACK 信号。ACK bit使得接收者通知主机已经成功接收数据并准备接收下一个数据。当从机响应NACK信号后,判定为传输完成,主机产生STOP信号,完成一组信号的传输。

基于LKS081C8T8的IIC学习.pdf

502.03 KB

学习记录

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2023-05-26
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2023-5-26 13:58 回复TA
IIC原理以及代码粘贴详细合理,文章整体结构清晰,分页设计巧妙,但是以后可以使用代码工具粘贴代码,阅读性会更好。 
沙发
21小跑堂| | 2023-5-26 13:59 | 只看该作者
下次申请原创记得 @21小跑堂

使用特权

评论回复
板凳
tpgf| | 2023-6-3 17:33 | 只看该作者
数据线和时钟线都需要加上拉电阻吗

使用特权

评论回复
地板
nawu| | 2023-6-3 18:05 | 只看该作者
是的 两条线都需要加上拉电阻,而且最好是外挂的上拉电阻

使用特权

评论回复
5
aoyi| | 2023-6-5 09:57 | 只看该作者
请问楼主如何能在一个楼层里边做内容的翻页呢

使用特权

评论回复
6
zljiu| | 2023-6-5 10:40 | 只看该作者
一般情况下 波形中的小毛刺不超过幅值的多少的情况下不影响通讯啊

使用特权

评论回复
7
gwsan| | 2023-6-5 11:27 | 只看该作者
正常应用的时候iic抗干扰的能力如何呀

使用特权

评论回复
8
tfqi| | 2023-6-5 11:48 | 只看该作者
gwsan 发表于 2023-6-5 11:27
正常应用的时候iic抗干扰的能力如何呀

I2C总线一般都适合在短距离的通信中使用的,长距离的干扰就比较厉害了

使用特权

评论回复
9
zizhouY| | 2024-8-24 15:28 | 只看该作者
你好,只用一块板子可以模拟主机连续发送么。我这边通过示波器看了一下,因为主机没接到ack,所以只发了地址信息后面的数据都发不出去

使用特权

评论回复
10
111123bghh| | 2024-9-7 22:17 | 只看该作者
zizhouY 发表于 2024-8-24 15:28
你好,只用一块板子可以模拟主机连续发送么。我这边通过示波器看了一下,因为主机没接到ack,所以只发了地 ...

我也不行 你解决了吗老哥 ack没应答 就一直start stop

使用特权

评论回复
11
gangong| | 2024-10-29 19:56 | 只看该作者
给楼主点赞

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝