从零开始一起学stm32(十一)---IIC协议

1回顾:

触摸屏:

触摸屏按键:

1 触摸屏和LCD屏的对应关系--3点校准

2 校准完成---获得LCD屏和触摸屏对应关系

LCD_X=(A*TP_X+B*TP_Y+C)/k;

LCD_Y=(D*TP_X+E*TP_Y+F)/k;

3 触摸屏按键

3.1在LCD屏上显示一个按键

3.2 点击触摸屏--通过上述关系--获得lcd屏坐标值

3.3判断是否是该按键区域,如果是,那么代表该按键被按下,否则,没有;

3.4 按键操作函数;

2 如果不想校准--A B C D E F K

A B C D E F K原本存放在哪里?--RAM(掉电丢失)

我们可以把数据存放到外部E2PROM中;

操作:

1 先读取校准值,如果没有,那么直接校准,校准完成,把数据保存到E2PROM中;

2如果有,直接读取使用;

E2PROM--电可擦除的ROM芯片(掉电不丢失)

1 stm32怎么和E2PROM芯片通信

3 IIC通信协议

3.1 IIC--飞利浦设计的一个异步 串行、半双工通信;

--IIC总线通信(可以挂接很多IIC通信设备)

IIC通信的物理层

微控制器、发送器、接收器、主机、从机

     1 SDA --数据总线

  2 SCL--总线时钟

2. IIC通信的协议

IIC总线的主机-----从机和接收器-----发送器

3 . A设备怎么向B设备发送数据和读取数据

    1.主机A设备发送数据到从机B

  1. 主机A产生一个起始条件
  2. 主机A寻址从机B
  3. 从机B返回一个应答信号
  4. 主机A发送器发送数据到从机B接收器
  5. 从机B返回一个应答信号
  6. 主机A终止传输 

    2 如果主机A接收从机B发送的数据

    1 主机A 产生一个开始条件

    2 主机A 寻址从机B 

    3 从机 B返回一个应答信号

    4 主机A 接收器从机 B发送的数据

如果:A产生一个应答,那么从机B再次向A发送8位数据

如果: 主机A产生停止条件---终止传输

IIC开始条件和停止条件:

开始条件:SCL为高电平时,SDA的下降沿(由高变低);

停止条件:SCL为高电平时,SDA的上升沿(由低变高);

数据传输:8位数据传输(每次只能传8位),MSB(高位)在前;

应答机制:发送方,发送8位数据后,必须的得到接收方的一个应答信号,如果没有,那么发送方停止发送数据。(在一个CLK下,SDA为低电平);

在应答的时钟脉冲期间接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平;

主机如何寻址从机:主机在开始条件后发送的8位数据的格式:

Xxxx xxxx ---高7位为地址位,LSB(最低位)--读写位。

读:1   写:0

寻址:

7位地址+读/写------1 0 1 0  A2 A1 A0 R/W 

1010---固化地址

A2A1A0--IIC设备的器件地址!

 

2 AT24C02存储芯片

1 AT24C02是什么?

24C02在IIC总线中作为从器件工作;

以E2PROM为存储结构的一个存储芯片--存储数据--AT24C02

管脚:A2 A1 A0 地址输入引脚

WP---写保护--0:可读可写

--1:只读

SCL--

SDA---IIC总线

以IIC为通信接口的存储芯片

存储芯片容量:2Kbits=256字节

操作256字节:对每个字节进行读和写--地址:0~255

字地址长度:8位---地址是:0x00~0xFF

Xxxx xxxx ---xxxx x页地址(高5位)

Xxx 页内地址(低3位)

注意:连续写,只能对一页操作)

A2A1A0---器件地址位;

IIC设备(从机地址(设备地址))---

E2PROM的设备地址--1010 xxx(r/w)---4位是不变的

AT24C02 的设备地址--1010 A2 A1 A0 (r/w)

如果 A2A1A0接高电平--

地址为:1010 111(r/w)

一个IIC总线只能挂接8个该设备

2 AT24C02的操作过程

发送一个字地址,再发8位数据(1个字节)。

3 读数据时序

读操作和写操作初始化相同,只是器件地址中的R/W位选择为1;

1 当前地址读

内部地址计数器保存上次访问时

 

4 写数据时序

1 字节写:主机开始条件--主机发送器件地址+w---从机应答---从机接收8位字地址---主机接收到应答(0)---从机接收8位数据---应答--主机发送停止条件位;

 

 

2 页写:

初始化与字节写相同,只是主器件不会在第一个数据后发送停止条件,而是在EEPROM的ACK以后,接着发送7个(24C02)数据;

接收到每个数据后,字地址的低3位内部自动加1,高位地址位不变,维持在当前页内。当内部产生的字地址达到该页边界地址时,

随后的数据将写入该页的页首--字地址将回转到该页的首字节,先前的字节将会被覆盖;

E2PROM的作用:0x12345678

作业:

1往E2PROM存放一组数据,然后读出,查看是否正确

2往E2PROM存放一个整数数据

3 把校准值放倒E2PROM中;

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值