i2c.c
来自「AVR Devolpment Board」· C语言 代码 · 共 45 行
C
45 行
#include "avr/io.h"
#include "compat/twi.h"
void I2C_Init(void)
{
TWSR=0x00;
TWBR=0x00;
TWAR=0x00;
TWCR=0x44;
PORTC|=0x33;
}
unsigned char I2C_Start(void)
{
TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
return 1;
}
void I2C_Stop(void)
{
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
unsigned char I2C_Write(unsigned char c)
{
unsigned char ACK=1;
TWDR=c;
TWCR=(1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
if((TWSR&0xF8)!=TW_MT_SLA_ACK)
ACK=0;
return ACK;
}
unsigned char I2C_Read(unsigned char ACK)
{
if(ACK)
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWEA);
else
TWCR=(1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
return TWDR;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?