資源簡介
基于ti驅動庫lm3s芯片I2C模塊例程,控制溫度傳感器LM75A,經過測試可以使用。可配合lm3s的I2C使用文檔查閱使用。

代碼片段和文件信息
#include??“LM3S_I2CM.h“
#include??
#include??
#include??
#include??
#define??PART_LM3S1138
#include??
//??定義工作狀態
#define??STAT_IDLE??????????????0???????????????????//??空閑狀態
#define??STAT_ADDR??????????????1???????????????????//??發送數據地址狀態
#define??STAT_DATA??????????????2???????????????????//??接收或發送數據狀態
#define??STAT_FINISH????????????3???????????????????//??收發完成狀態
//??定義全局變量
static?unsigned?long?I2CM_base?=?I2C0_MASTER_base;??//??定義I2C主機基址,并初始化
static?tI2CM_DEVICE?gtDevice;???????????????????????//??器件數據接口
static?unsigned?char?gucStatus?=?STAT_IDLE;?????????//??工作狀態
static?tBoolean?gbSendRecv;?????????????????????????//??收發操作標志,false發送,true接收
static?char?gcAddr[4];??????????????????????????????//??數據地址數組
static?unsigned?int?guiAddrIndex;???????????????????//??數據地址數組索引變量
static?unsigned?int?guiDataIndex;???????????????????//??數據緩沖區索引變量
//??對tI2CM_DEVICE結構體變量初始化設置所有數據成員
void?I2CM_DeviceInitSet(tI2CM_DEVICE?*pDevice?unsigned?char?ucSLA
???????????????????????????????????????????????unsigned?long?ulAddr
???????????????????????????????????????????????unsigned?int?uiLen
???????????????????????????????????????????????char?*pcData
???????????????????????????????????????????????unsigned?int?uiSize)
{
????pDevice->ucSLA?=?ucSLA;
????pDevice->ulAddr?=?ulAddr;
????pDevice->uiLen?=?uiLen;
????pDevice->pcData?=?pcData;
????pDevice->uiSize?=?uiSize;
}
//??對tI2CM_DEVICE結構體變量設置與數據收發相關的成員(數據地址、數據緩沖區、數據大小)
void?I2CM_DeviceDataSet(tI2CM_DEVICE?*pDevice?unsigned?long?ulAddr
???????????????????????????????????????????????char?*pcData
???????????????????????????????????????????????unsigned?int?uiSize)
{
????pDevice->ulAddr?=?ulAddr;
????pDevice->pcData?=?pcData;
????pDevice->uiSize?=?uiSize;
}
//??I2C主機初始化
void?I2CM_Init(void)
{
????I2CM_DeviceInitSet(>Device?0?0?0?(void?*)0?0);
????if?((I2CM_base?!=?I2C0_MASTER_base)?&&?(I2CM_base?!=?I2C1_MASTER_base))
????{
????????I2CM_base?=?I2C0_MASTER_base;
????}
????switch?(I2CM_base)
????{
????case?I2C0_MASTER_base:
????????SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);?????????//??使能I2C0模塊
????????SysCtlPeripheralEnable(I2C0SCL_PERIPH);?????????????//??使能SCL所在的GPIO模塊
????????GPIOPinTypeI2C(I2C0SCL_PORT?I2C0SCL_PIN);??????????//??配置相關管腳為SCL功能
????????SysCtlPeripheralEnable(I2C0SDA_PERIPH);?????????????//??使能SDA所在的GPIO模塊
????????GPIOPinTypeI2C(I2C0SDA_PORT?I2C0SDA_PIN);??????????//??配置相關管腳為SDA功能
????????IntEnable(INT_I2C0);????????????????????????????????//??使能I2C0中斷
????????break;
????case?I2C1_MASTER_base:
????????SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1);?????????//??使能I2C1模塊
????????SysCtlPeripheralEnable(I2C1SCL_PERIPH);?????????????//??使能SCL所在的GPIO模塊
????????GPIOPinTypeI2C(I2C1SCL_PORT?I2C1SCL_PIN);??????????//??配置相關管腳為SCL功能
????????SysCtlPeripheralEnable(I2C1SDA_PERIPH);?????????????//??使能SDA所在的GPIO模塊
????????GPIOPinTypeI2C(I2C1SDA_PORT?I2C1SDA_PIN);?????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2926??2008-10-27?11:18??uartGetPut.c
?????文件?????????442??2008-10-06?08:51??uartGetPut.h
?????文件??????128804??2008-11-05?10:35??LM75A.pdf
?????文件???????25304??2009-02-12?17:21??LM75A基本應用電路.gif
?????文件????????7709??2009-03-11?09:48??Demo.dep
?????文件???????33547??2008-07-02?15:38??Demo.ewd
?????文件???????41357??2008-11-07?09:24??Demo.ewp
?????文件?????????158??2008-07-02?15:19??Demo.eww
?????文件???????10162??2009-04-22?09:20??LM3S_I2CM.c
?????文件????????1630??2009-03-11?09:44??LM3S_I2CM.h
?????文件????????2226??2009-04-22?09:39??main.c
?????文件????????9179??2008-11-04?08:59??startup_ewarm.c
?????文件????????1723??2008-10-13?09:35??systemInit.c
?????文件?????????749??2008-10-27?14:54??systemInit.h
- 上一篇:e數值計算的labview實現
- 下一篇:粗糙集屬性約簡
評論
共有 條評論