91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-09
  • 語言: 其他
  • 標簽: STM32??IIC??24C02??

資源簡介

keil mdk5平臺開發。stm32f103芯片,軟件模擬IIC讀寫24c02

資源截圖

代碼片段和文件信息



#include?“24cxx.h“?
#include?“delay.h“?
//#include?“global.h“

//Mini?STM32開發板
//24CXX驅動函數(適合24C01~24C1624C32~256未經過測試!有待驗證!)
//正點原子@ALIENTEK
//2010/6/10
//V1.2

//初始化IIC接口
void?AT24CXX_Init(void)
{
IIC_Init();
}
//在AT24CXX指定地址讀出一個數據
//ReadAddr:開始讀數的地址??
//返回值??:讀到的數據
u8?AT24CXX_ReadOneByte(u16?ReadAddr)
{ ??
u8?temp=0; ?? ???? ?
????IIC_Start();??
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); ???//發送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//發送高地址
IIC_Wait_Ack(); ?
}else?IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));???//發送器件地址0XA0寫數據? ?

IIC_Wait_Ack();?
????IIC_Send_Byte(ReadAddr%256);???//發送低地址
IIC_Wait_Ack(); ????
IIC_Start();?? ? ???
IIC_Send_Byte(0XA1);???????????//進入接收模式 ???
IIC_Wait_Ack(); ?
????temp=IIC_Read_Byte(0); ???
????IIC_Stop();//產生一個停止條件 ????
return?temp;
}
//在AT24CXX指定地址寫入一個數據
//WriteAddr??:寫入數據的目的地址????
//DataToWrite:要寫入的數據
void?AT24CXX_WriteOneByte(u16?WriteAddru8?DataToWrite)
{ ??? ?? ???? ?
????IIC_Start();??
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); ????//發送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//發送高地址
IIC_Wait_Ack(); ?
}else
{
IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));???//發送器件地址0XA0寫數據?
} ?
IIC_Wait_Ack(); ???
????IIC_Send_Byte(WriteAddr%256);???//發送低地址
IIC_Wait_Ack();? ? ?? ???
IIC_Send_Byte(DataToWrite);?????//發送字節 ???
IIC_Wait_Ack();?? ???? ???
????IIC_Stop();//產生一個停止條件?
delay_ms(10); ?
}

/*
void?AT24CXX_WritePageLenByte(u16?WriteAddr?u8?*pt?u8?Len)
{
u8?t;
for(t=0;t {
AT24CXX_WriteOneByte(WriteAddr+t*(pt+t));
}
?
}
*/


void?AT24CXX_WritePageLenByte(u16?WriteAddr?u8?*pt?u8?Len)
{
u8?u;
u8?cmdtx?cmdrd?laddr;

cmdtx=0XA0+((WriteAddr/256)<<1);?
laddr=WriteAddr%256;?

I2Cinit();
??? ?? ???? ?
????IIC_Start();??
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); ????//發送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//發送高地址??? ?
}else
{
IIC_Send_Byte(cmdtx);???//發送器件地址,0XA0寫數據?
} ?
IIC_Wait_Ack();
???
????IIC_Send_Byte(laddr);???//發送低地址
IIC_Wait_Ack();?
for(u=0;u { ? ?? ???
IIC_Send_Byte(*pt++);?????//發送字節 ???
IIC_Wait_Ack();?
}? ???? ???
????IIC_Stop();//產生一個停止條件?
delay_ms(10);
?
}




void?AT24CXX_ReadPageLenByte(u16?ReadAddr?u8?*ptu8?Len)
{??
u8?t;

for(t=0;t {
*pt++=AT24CXX_ReadOneByte(ReadAddr+t);
} ????
}?


/*
void?AT24CXX_ReadPageLenByte(u16?ReadAddr?u8?*ptu8?Len)
{??
char?u;
u8?cmdtx?cmdrd?laddr;
u8?temp=0;

cmdtx=0XA0+((ReadAddr/256)<<1);
cmdrd=0XA1+((ReadAddr/256)<<1);
laddr=ReadAddr%256;
?? ???? ?
????IIC_Start();??
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); ???//發送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//發送高地址
}
else?
IIC_Send_Byte(cmdtx);???//發送器件地址0XA1讀數據? ?

IIC_Wait_Ack();?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5848??2016-10-09?19:08??24CXX\24cxx.c

?????文件???????1184??2017-11-25?19:06??24CXX\24cxx.h

?????文件???????1446??2017-11-25?17:31??24CXX\delay.c

?????文件????????351??2016-10-02?09:53??24CXX\delay.h

?????文件???????4163??2017-11-25?19:13??24CXX\myiic.c

?????文件????????693??2017-11-25?19:05??24CXX\myiic.h

?????目錄??????????0??2017-11-29?19:16??24CXX

-----------?---------??----------?-----??----

????????????????13685????????????????????7


評論

共有 條評論