蓝桥杯嵌入式模板构建___IIC

1.简单修改官方iic.c文件

在这里插入图片描述

    SCL_Output(0);
    delay1(DELAY_TIME);
    SDA_Output_Mode();

2.代码

IIC.c里面添加24c02和可编程电阻的读写代码

void iic_24c02_write(unsigned char* buff,unsigned char ucAddr, unsigned char num)
{
	I2CStart();
	I2CSendByte(0xa0);
	I2CWaitAck();
	
	I2CSendByte(ucAddr);
	I2CWaitAck();
	
	while(num--)
	{
		I2CSendByte(*buff++);
		I2CWaitAck();
	}
	I2CStop();
	delay1(500);
}

void iic_24c02_read(unsigned char* buff,unsigned char ucAddr, unsigned char num)
{
	I2CStart();
	I2CSendByte(0xa0);
	I2CWaitAck();
	
	I2CSendByte(ucAddr);
	I2CWaitAck();
	
	I2CStart();
	I2CSendByte(0xa1);
	I2CWaitAck();
	
	while(num--)
	{
		*buff++ = I2CReceiveByte();
		if (num)
			I2CSendAck();
		else
			I2CSendNotAck();
	}
	I2CStop();
}


void write_Msp4017(unsigned value)
{
	I2CStart();
	I2CSendByte(0x5E);
	I2CWaitAck();
	
	I2CSendByte(value);
	I2CWaitAck();
	I2CStop();	
}

unsigned char read_Msp4017()
{
	unsigned char value;
	I2CStart();
	I2CSendByte(0x5F);
	I2CWaitAck();
	
	value = I2CReceiveByte();
	I2CSendNotAck();
	I2CStop();	

	return value;
}

3.应用

unsigned char Buff_24c02_write[5] = {0x01,0x02,0x03,0x04,0x05};//IIC要写入的数据
unsigned char Buff_24c02_read[5];                              //读数据放的位置

I2CInit();                                                     //初始化
iic_24c02_write(Buff_24c02_write,0,5);                         //写入Buff_24c02_write中的数据到E2PROM,从0个位置开始写,写入5个数据

iic_24c02_read(Buff_24c02_read,0,5);                           //从E2PROM里读数据到Buff_24c02_read中


write_Msp4017(0x77);                                          //将可编程电阻设置成0x77
res = read_Msp4017();                                         //读取可编程电阻的值,转换为真实值需要乘以0.7874

4.注意事项(重要)

在定义要写入的数据的时候定义可成十六进制方便读写,在屏幕上显示的时候可用%x


函数iic_24c02_write(Buff_24c02_write,0,5);iic_24c02_read(Buff_24c02_read,0,5);之间如果挨着写,需要delay一毫秒的时间,否则会出错,如果没有挨着写,则根据距离远近来判断是否需要delay,一般隔得远就不用delay,因为中间执行的其他函数就相当于是delay了。


在我写的LCD显示函数中我不是一直去扫描LCD而是隔一段时间去扫描一次,具体见下面代码:

void Lcd_Func()
{
	if (uwTick - Lcd_Delay_uwTick < 417) return; 
		Lcd_Delay_uwTick = uwTick;
	
	iic_24c02_read(Buff_24c02_read,0,5);

	sprintf((char *)Lcd_Disp_arr,"  %x,%x,%x,%x,%x  ",Buff_24c02_read[0],Buff_24c02_read[1],Buff_24c02_read[2],Buff_24c02_read[3],Buff_24c02_read[4]);

	LCD_DisplayStringLine(Line0, Lcd_Disp_arr);
}

TMD这里的扫描时间不能小于417,否者显示出来的数组不止之前定义的5个数,后面还有ff这个鬼,但是可以在后面加空格给它挤出去解决问题,但是扫描时间如果大于417的话也不会出现这个问题。所以最好LCD扫描时间在500往上。


在这里插入图片描述
可编程电阻里面是分为127小份的,由上图可得
故在由读取值转换为真实值的过程需要乘以100000/127=0.78740

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: iic_slaver.rar_iic时序是一个嵌入式文档类资源。在嵌入式系统中,iic_slaver.rar文件是一个包含了iic(Inter-Integrated Circuit)接口的从设备(slaver)的时序信息的压缩文件。 iic是一种串行通信协议,主要用于各种嵌入式设备之间的数据传输。iic接口由两根线组成,一根是数据线(SDA),另一根是时钟线(SCL)。在iic_slaver.rar中,我们可以找到从设备在这个接口上进行数据传输的具体时序信息。 iic_slave.rar文件中的时序信息对于开发者来说是非常重要的,因为它们描述了从设备与主设备之间的数据传输时机、数据的发送和接收顺序,以及时钟信号的频率等细节。通过分析时序信息,开发者可以了解从设备与主设备之间的通信规则,从而正确编写驱动程序以实现数据的稳定传输。 此外,iic_slaver.rar_iic时序还可能包含从设备的相关文档,如寄存器映射表和时序图等。这些文档提供了关于从设备硬件的更详细的信息,帮助开发者了解从设备的工作原理和寄存器的使用方法。 总之,iic_slaver.rar_iic时序是一个非常实用的嵌入式文档资源,它包含了关于iic接口从设备的时序信息以及相关的文档资料,对于进行嵌入式开发的人员来说,这些资料是非常重要的参考。 ### 回答2: iic_slaver.rar_iic时序是一种嵌入式文档类资源。嵌入式系统是指嵌入在其他设备或系统中的计算机系统,通常用于控制、监测或通信等目的。这种时序文档资源主要用于描述iic从设备的时序,以指导嵌入式开发人员在设计和实现中遵循正确的时序要求。 在嵌入式系统中,IIC(Inter-Integrated Circuit)是一种常见的串行通信接口协议,用于在主设备和从设备之间进行数据传输。IIC协议通常被用于连接各种外设(如传感器、存储器等)和微控制器等嵌入式系统中的主控制器。 iic_slaver.rar_iic时序资源是一个被压缩为.rar文件的文档资源。该资源通过解压缩后,可以获取到其中的iic时序文档,该文档对于嵌入式开发人员来说非常有用。iic时序文档描述了在使用IIC协议进行通信时所需的时序要求,包括信号的时序顺序、时钟信号的频率、数据传输的速率等。 嵌入式系统的开发通常需要遵循一定的时序规范,以确保数据传输的准确性和稳定性。因此,iic_slaver.rar_iic时序文档资源可以为开发人员提供了解和理解IIC协议时序要求的参考资料。在使用这一资源时,开发人员可以通过查阅其中的iic时序文档,了解IIC协议的时序要求,并根据文档中的指导,设计和调整嵌入式系统中与IIC通信相关的电路和程序。 总之,iic_slaver.rar_iic时序是一种嵌入式文档类资源,通过提供IIC通信协议的时序要求文档,帮助嵌入式开发人员编写和调试与IIC相关的程序和电路。 ### 回答3: iic_slaver.rar_iic时序是一种嵌入式文档类资源。在嵌入式系统中,I2C总线被广泛应用于连接微处理器和各种外设,用于实现数据传输和通信。iic_slaver.rar文件中包含了关于I2C从机(iic_slaver)的相关文档和资源。 I2C(Inter-Integrated Circuit)是由飞利浦公司开发的一种串行通信总线标准。它采用两根线进行数据传输,即SDA(Serial Data Line)和SCL(Serial Clock Line)。其中SDA用于数据传输,SCL用于时钟同步。通过使用I2C总线,嵌入式设备可以与各种传感器、存储器、显示器、控制器等外设进行通信。 iic_slaver.rar文件中的I2C时序文档详细描述了iic_slaver从机设备与主控设备之间的数据传输时序要求。通过按照这些时序要求进行数据读取和写入操作,可以实现可靠的数据传输和通信。这些时序要求包括时钟频率、数据传输速率、起始信号、停止信号等。 此外,iic_slaver.rar文件中可能还包含有关iic_slaver从机设备的硬件设计参考资料、软件开发工具和示例代码等。这些资源可以帮助开发人员设计和开发符合I2C标准的嵌入式设备,并实现与其他设备的通信和数据交换。 总之,iic_slaver.rar_iic时序是一种嵌入式文档类资源,它提供了关于I2C从机设备的时序要求、硬件设计参考和开发工具等资源,帮助开发人员设计和实现嵌入式设备之间的可靠通信和数据传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值