📄 i2c.c
字号:
#include<c8051f350.h>
#include "variable.h"
#include "I2C.h"
#include "menu.h"
bit SMB_BUSY;
bit SMB_RW;
bit RW_flag;
bit Ack1;
bit Ack2;
/********************************************
函数名: SMbus_init
功能: SMbus初始化
形式参数:无
返回值:无
********************************************/
void SMbus_init(void)
{
SMB0CF = 0xDC;
}
/********************************************
函数名: SMbus_24c02_read
功能: SMbus读数据
形式参数:addr-字节首地址
返回值:读取的数据
********************************************/
void SMbus_24c02_read(unsigned char addr)
{
while(SMB_BUSY);
SMB_BUSY=1;
RW_flag=1;
Ack1=0;
Ack2=0;
Slave=0xa0;//24c02器件地址
SMB_RW=write;
Dat_addr=addr;//数据首字节地址
STA=1;
while(SMB_BUSY);
}
/********************************************
函数名: SMbus_24c02_write
功能: 24c02写数据
形式参数:addr-字节首地址,dat-数据值
返回值:无
********************************************/
void SMbus_24c02_write(unsigned char addr,unsigned char dat)
{
while(SMB_BUSY);
SMB_BUSY=1;
RW_flag=0;
Ack1=0;
Ack2=0;
Slave=0xa0;
SMB_RW=write;
Dat_addr=addr;
Dat_val=dat;
STA=1;
while(SMB_BUSY);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -