📄 twi.c
字号:
/************************************************
文件:TWI.c
用途:TWI操作函数
注意:
创建:2008.1.26
修改:2008.1.26
Copy Right (c) www.avrvi.com AVR与虚拟仪器
************************************************/
#include "..\config.h"
/*************************************************************************
** 函数名称: twi_init(void)
** 功能描述: i2c通信初始化
** 输 入:
** 输出 :
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
**************************************************************************/
void twi_init(void)
{
TWCR= 0x00; //disable twi
TWBR= (1<<6) | (1<<5) | (1<<2); //set bit rate
TWSR= 0x00; //set prescale
TWAR= 0x00; //set slave address
TWCR= (1<<TWEN); //enable twi
}
/*************************************************************************
** 函数名称: i2cstart(void)
** 功能描述: i2c通信开始
** 输 入:
** 输出 :
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
**************************************************************************/
void i2cstart(void)
{
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
}
/*************************************************************************
** 函数名称: unsigned char i2cwt(unsigned char data)
** 功能描述: i2c写数据,返回TWI状态
** 输 入:
** 输 出: TWI状态
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
**************************************************************************/
unsigned char i2cwt(unsigned char data)
{
TWDR = data;
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
_NOP();
return(TWSR&0b11111000);
}
/*************************************************************************
** 函数名称: unsigned char i2crd(void)
** 功能描述: i2c读数据
** 输 入:
** 输出 : 读取的数据
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
**************************************************************************/
unsigned char i2crd(void)
{
TWCR= (1<<TWINT) | (1<<TWEA) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
return(TWDR);
}
/*************************************************************************
** 函数名称: i2cstop(void)
** 功能描述: i2c停止
** 输 入:
** 输出 :
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
**************************************************************************/
void i2cstop(void)
{
TWCR = (1<<TWINT) | (1<<TWSTO) | (1<<TWEN);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -