?? iic0.h
字號(hào):
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Copyright (c) $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ 肖遙電子(廣州)研發(fā)中心
$ Shawyoo Electronics (GuangZhou) R&D Center
$ http://www.shawyoo.com Email: autoele@qq.com
$ QQ群:9069471/9069433/9524253 All rights reserved.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Copyright (c) $$$$$$$$$$$$$$$$$$$$$$$$$$$ */
/*
文件描述
文件名: IIC0.h
功能描述: IIC0底層驅(qū)動(dòng)程序頭文件
編譯環(huán)境: Keil for ARM + ARTX
目標(biāo)CPU: LPC2000
作者: 肖建輝
創(chuàng)建時(shí)間:
建議編輯環(huán)境:UltraEdit 11.00a+ 制表符寬度為三個(gè)字符,程序可讀性更好。
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
*/
#ifndef __IIC0_H__
#define __IIC0_H__
#include "RTOS.h" /* ARTX kernel functions & defines */
#include "TWI.h"
#ifdef IIC0_GLOBALS
#define IIC0_EXT
#else
#define IIC0_EXT extern
#endif
// $$$$$$$$$$$$$$$$$$ <<< Use Configuration Wizard in Context Menu >>> $$$$$$$$$$$$$$$$$
// <h>IIC0相關(guān)設(shè)置
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
// <o>I2C_FREQUENCY: IIC0波特率設(shè)置 <100000-400000>
// <i> Default: 172800
*/
#define I2C_FREQUENCY 172800
#if (I2C_FREQUENCY >= 400000)
#error "Out of IIC MAX Frequency"
#endif
// </h>
// $$$$$$$$$$$$$$$$$$$ <<< end of configuration section >>> $$$$$$$$$$$$$$$$$$$$$$$$$$$$
/* I2C Interface 0 */
#define I20CONSET (*((volatile unsigned char *) 0xE001C000))
#define I20STAT (*((volatile unsigned char *) 0xE001C004))
#define I20DAT (*((volatile unsigned char *) 0xE001C008))
#define I20ADR (*((volatile unsigned char *) 0xE001C00C))
#define I20SCLH (*((volatile unsigned short*) 0xE001C010))
#define I20SCLL (*((volatile unsigned short*) 0xE001C014))
#define I20CONCLR (*((volatile unsigned char *) 0xE001C018))
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
IIC從機(jī)器件地址
*/
#define IIC_SLAVER_ADDRESS 0x08
#define IIC_EE_DEVICE_ADDR1 0xa2
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
各種命令字枚舉
*/
IIC0_EXT enum
{
IIC_GET_SPEED_COMMAND = 1,
IIC_GET_GPS_COMMAND,
IIC_GET_T485_COMMAND,
IIC_EEPROM_UART0,
IIC_EEPROM_GSM_GPRS,
IIC_READ_COMM, // IIC讀命令(沒(méi)有重復(fù)開始信號(hào))
IIC_WRITE_COMM, // IIC寫(沒(méi)有重復(fù)開始信號(hào))
IIC_RW_COMM, // IIC寫讀(需重復(fù)開始信號(hào))
IIC_INIT_CHECK_COMM = 'I',
IIC_BEEP_LED_COMM = 'B',
IIC_SET_LED_BUZZER_COMMAND = 0x81,
} IIC_COMMAND_ENUM;
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
IIC通訊相關(guān)變量定義
*/
IIC0_EXT struct
{
uchar ReadWrite;
uchar SlaverAddress;
uchar Command;
uchar Busy;
uchar RW_Type;
uchar Status;
uint16 RLen;
uint16 WLen;
uchar *pReadBuffer;
uchar *pWriteBuffer;
} IIC;
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:IIC_Read
功能描述:按指定的從機(jī)地址的當(dāng)前存儲(chǔ)地址和長(zhǎng)度讀取數(shù)據(jù)
入口參數(shù):從機(jī)地址,任務(wù)命令,讀取的長(zhǎng)度,接收緩沖
出口參數(shù):無(wú)
全局變量: 無(wú)
創(chuàng)建時(shí)間:
修改時(shí)間:
注1:命令字作用 IIC通訊完畢時(shí),該馬上返回哪個(gè)任務(wù)
注2:此函數(shù)對(duì)于操作非EEPROM時(shí),很有用。比如與其它CPU的IIC通訊時(shí),連續(xù)讀100字節(jié)
*/
uchar IIC_Read(uchar SlaveAddr,uchar Comm,uint16 Length,uchar *pBuffer);
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:IIC_Write
功能描述:寫數(shù)據(jù)到從機(jī)
入口參數(shù):從機(jī)地址,任務(wù)命令,長(zhǎng)度,寫入的數(shù)據(jù)區(qū)指針
出口參數(shù):
全局變量:
創(chuàng)建時(shí)間:
修改時(shí)間:
注1:命令字作用 IIC通訊完畢時(shí),該馬上返回哪個(gè)任務(wù)
注2:此函數(shù)對(duì)于操作非EEPROM時(shí),很有用。比如與其它CPU的IIC通訊時(shí),連續(xù)寫100字節(jié)
寫緩沖的前幾個(gè)字節(jié)可用于從機(jī)認(rèn)識(shí)的命令字或地址
*/
uchar IIC_Write(uchar SlaveAddr,uchar Comm,uint16 Length,uchar *pBuffer);
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:IIC_WriteRead
功能描述:按指定的從機(jī)地址的隨機(jī)存儲(chǔ)地址讀取數(shù)據(jù)
入口參數(shù):器件地址,任務(wù)命令,寫長(zhǎng)度和寫數(shù)據(jù)緩沖指針,讀長(zhǎng)度和數(shù)據(jù)緩沖指針
出口參數(shù):無(wú)
全局變量:
創(chuàng)建時(shí)間:
修改時(shí)間:
注1:命令字作用 IIC通訊完畢時(shí),該馬上返回哪個(gè)任務(wù)
注2:此函數(shù)對(duì)于操作非EEPROM時(shí),很有用。比如與其它CPU的IIC通訊時(shí),
連續(xù)寫100字節(jié)后馬上再連讀100字節(jié)。寫緩沖的前幾個(gè)字節(jié)可用于從機(jī)認(rèn)識(shí)的命令字或地址
*/
uchar IIC_WriteRead(uchar Addr,uchar Comm,uint16 WLen,uchar *pW,uint16 RLen,uchar *pR);
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:ReadEEPROM
功能描述:讀EEPROM
入口參數(shù):器件地址,存儲(chǔ)器地址,讀長(zhǎng)度,讀取存儲(chǔ)指針
出口參數(shù):無(wú)
全局變量: 無(wú)
創(chuàng)建時(shí)間:
修改時(shí)間:
注:本函數(shù)只支持存儲(chǔ)容量大于256字節(jié)的EEPROM,要支持小容量的,請(qǐng)自行修改
*/
void ReadEEPROM(uchar DAddr,uint16 RAddr,uint16 RLen,uchar *pData);
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:EEPROM_Write
功能描述:寫EEPROM
入口參數(shù):器件地址,頁(yè)長(zhǎng)度,寫存儲(chǔ)地址,寫長(zhǎng)度,待寫數(shù)據(jù)指針
出口參數(shù):輸入成功與否(只判斷輸入EEPROM,不判斷是否寫成功),返回0表示成功
全局變量: 無(wú)
創(chuàng)建時(shí)間:
修改時(shí)間:
注:本函數(shù)只支持存儲(chǔ)容量大于256字節(jié)的EEPROM,要支持小容量的,請(qǐng)自行修改
*/
uchar WriteEEPROM(uchar DAddr,uchar PageLen,uint16 WAddr,uint16 WLen,uchar *pData);
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
函數(shù)名稱:I2cInit
功能描述:I2c0初始化函數(shù)
入口參數(shù):無(wú)
出口參數(shù):無(wú)
全局變量:
創(chuàng)建時(shí)間:
修改時(shí)間:
*/
void I2C0_Init(void);
#endif
/*
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ End of File $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -