📄 avr_iic.txt
字号:
avr单片机IIc总线编程
#define IIC_Start() TWCR =(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
#define IIC_Stop() TWCR =(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)
#define IIC_Wait() while(!(TWCR&(1<<TWINT)))
#define IIC_NoneAck() TWCR =(1<<TWINT)|(1<<TWEN)
#define IIC_Ack() TWCR =(1<<TWINT)|(1<<TWEN)|(1<<TWEA)
/*=========================================
IicWrite(uchar ad,uchar da):ad=寄存器地址,da=数据;
IicRead(uchar ad): ad=寄存器地址
=========================================*/
void IicWrite(uchar ad,uchar da)
{
IIC_Start();
IIC_Wait();
TWDR=0xA2;//从机地址
IIC_Ack();
IIC_Wait();
TWDR=ad;
IIC_Ack();
IIC_Wait();
TWDR=da;
IIC_Ack();
IIC_Wait();
IIC_Stop();
}
uchar IicRead(uchar ad)
{
unsigned char data;
IIC_Start();
IIC_Wait();
TWDR = 0xA2;//从机地址
IIC_Ack();
IIC_Wait();
TWDR = ad;
IIC_Ack();
IIC_Wait();
IIC_Start();
IIC_Wait();
TWDR = 0xA3;
IIC_Ack();
IIC_Wait();
IIC_NoneAck();
IIC_Wait();
data=TWDR;
IIC_Stop();
return data;
}
单片机工作在IIC工作在主机方式下,对从机读取数据及写入数据.已经调试通过.希望大家能够补充完善.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -