i2c.c

来自「这是一种温度变送器的源代码」· C语言 代码 · 共 61 行

C
61
字号
#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 + =
减小字号Ctrl + -
显示快捷键?