labview烧写参数到单片机(labview实验EEPROM的读写IIC)
labview烧写参数到单片机(labview实验EEPROM的读写IIC)(一)IIC协议:一,IIC通信从接收器模式;主发送器模式;从发送器模式。
IIC是两线式串行总线,仅需要时钟和数据两根线就可以进行数据传输,仅需要占用微处理器的2个IO引脚,使用时十分方便。
STM32内部集成了IIC总线控制器,更多用户利用软件来控制STM32的物理引脚,模拟实现一个IIC总线接口。优势在于用户可以利用STM32的任意两个引脚充当IIC外部通信线(SCL,SDA),有利于电路线路的布局。
由于IIC总线只有一根数据线充当输入与输出,因此,在通信前需要明确告诉对方接口的工作方式。一般有4种工作方式:
从发送器模式;
从接收器模式;
主发送器模式;
从发送器模式。
一,IIC通信
(一)IIC协议:
1,空闲状态
3,应答信号ACK
发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。
4,数据的有效性
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
即:数据在SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。
5,数据传输
在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。
EEPROM (24C02)
1,器件地址
如果A2=A1=A0=0;
读的时候:Device Address=0xA1
写的时候:Device Address=0xA0
2,字节写时序
3,字节读时序
二,程序编写实验
编写一个EPPROM数据写入和读取程序
用开关KEY_UP开关和闭合切换写入两组不同的数据,然后读取出来,显示在LCD上。
实验预期效果:程序启动运行后,LCD显示出一组数据,代表从EPPROM中读取出来的数据;当按下KEY_UP按键时,LCD显示出另一组数据;当KEY_UP松开时,LCD显示出原先的数据。
程序编写,只需要一个子VI
程序步骤
1,LCD初始化
2,EEPROM初始化
3,EEPROM字节数组写入
4,EEPROM字节数组读取
5,LCD清除背景
6,LCD字符显示
程序编写
1,LCD初始化
2,EEPROM初始化
本质上是对IIC接口进行初始化,可以选择IIC组号,SCL与SDA的引脚号。容量1K或2K大小的EEPROM器件地址是0x50,本质上是将A2、A1、A0全部拉低,然后再右移一位。
EEPROM硬件图:
3,EEPROM字节数组写入
KEY_UP按下或松开,分别写入不同的字符串
4,EEPROM字节数组读取
5,LCD清除背景
6,LCD字符显示
程序编写完成。
三,编译下载
程序运行后,显示屏默认显示(即KEY_UP没有按下,或KEY_UP松开时显示)
按下KEY_UP后显示: