?? 2402.c
字號:
/*************************此部分為AT2402的驅動程序使用I2C總線連接*************************************/
#include<Function.h>
//AT2402的功能函數
/*******************************************************************
向有子地址器件發送多字節數據函數
函數原型: bit ISendStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no);
功能: 從啟動總線到發送地址,子地址,數據,結束總線的全過程,從器件
地址sla,子地址suba,發送內容是s指向的內容,發送no個字節。
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
********************************************************************/
bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no)
{
unsigned char i;
Start_I2c(); /*啟動總線*/
SendByte(sla); /*發送器件地址*/
if(ack==0)return(0);
SendByte(suba); /*發送器件子地址*/
if(ack==0)return(0);
for(i=0;i<no;i++)
{
SendByte(*s); /*發送數據*/
if(ack==0)return(0);
s++;
}
Stop_I2c(); /*結束總線*/
return(1);
}
/*******************************************************************
向有子地址器件讀取多字節數據函數
函數原型: bit RecndStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no);
功能: 從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從器件
地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no個字節。
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
********************************************************************/
bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no)
{
unsigned char i;
Start_I2c(); /*啟動總線*/
SendByte(sla); /*發送器件地址*/
if(ack==0)return(0);
SendByte(suba); /*發送器件子地址*/
if(ack==0)return(0);
Start_I2c(); /*重新啟動總線*/
SendByte(sla+1);
if(ack==0)return(0);
for(i=0;i<no-1;i++)
{
*s=RcvByte(); /*發送數據*/
Ack_I2c(0); /*發送就答位*/
s++;
}
*s=RcvByte();
Ack_I2c(1); /*發送非應位*/
Stop_I2c(); /*結束總線*/
return(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -