📄 i2c.h
字号:
/********************** I2C总线基本操作函数******************************
[文件名] I2C.c+I2C.H+ASMselect.h
[版本] TV0.2
[修正] hxc
hxc last change time 2006.4.10 x:x
hxc last check time 2006.4.24 17:00
1,地址为1 0 1 0 B2 B1 B0 R/W
2,SCL,SDA
3,delay()
4,wait_5ms()写入数据之后的延时
5,调用写函数i2c_writedata()
6,调用读函数uchar i2c_READdata()
******************************************************************************/
#include "TAB.h"
void delay( void ); //clk长度
void wait_5ms( void );//延时5ms
bit i2c_writedata(uchar Device_WRITE_id,uchar Address,uchar i2cdata);//i2cdata写入Address内,ok返回1
uchar i2c_READdata(uchar Device_READ_id,uchar Address);//正确读取指定地址的数据i2cok=1并返回数据,否则i2cok=0
#define BLOCK_SIZE 32 /* 定义指定字节个数 */
void I_stop( void );//I2C总线工作停止
void I_init( void );//I2C总线初始化,首先调用本函数, 然后再调用其它函数?
void I_start( void );//I2C总线工作时序中的起始?
bit I_clock( void );//提供I2C总线的时钟信号, 并返回在时钟电平为高期间SDA信号线上状态。
//本函数可用于数据发送, 也可用于数据接收?
void I_Ack( void ); //收到8位数据后,回应ACK, 一般用于连续数据读取时?
bit I_send( unsigned char I_data);//I2C总线发送8位数据,后收到ACK,返回1,超时返回0.
unsigned char I_receive( void );//接收8位数据,并返回
bit WaitAck(void);//收到ACK,返回1,超时返回0.I_send()中已调出了此函数
bit I_read_1bit(void);//返回总线上一位数据。
bit E_address( uchar Device_WRITE_id,uchar Address );//写入一个地址,写入地址成功1
bit i2c_write_block(uchar ucid,uchar ucaddress,uchar uccount, uchar * pucbuf_data) ;//写入块
bit i2c_read_block( uchar ucid,uchar ucaddress,uchar uccount, uchar * pucbuf_data);//读取块
/* 对应址写入数据
I_init()->E_address(写入地址)->I_send(写入数据)->I_stop()
->wait_5ms()->E_address(写入地址)->I_send(写入数据)->I_stop()...
如
I_init();
if ( E_address(0) && I_send( 0xa1 ) ) {
I_stop() ;
wait_5ms();
}
else {
// errorP10();
}
对应地址读出数据
E_address(读取起始地址)I_init()->I_send( READ )->X=(I_receive())
->I_Ack()->X1=(I_receive())...XN=(I_receive())->I_clock()->I_stop();
如;
if ( E_address( 0 ) )
{
I_start() ;
if ( I_send( READ ) ) {
EAROMImage[0] = ( I_receive() ) ;
I_Ack() ;
EAROMImage[1] = ( I_receive() ) ;
I_clock() ;
I_stop() ;
ok=1;
}
else {
I_stop() ;
errorP10();
}
}
else{
I_stop() ;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -