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:
- 主机A产生一个起始条件
- 主机A寻址从机B
- 从机B返回一个应答信号
- 主机A发送器发送数据到从机B接收器
- 从机B返回一个应答信号
- 主机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中;