资源简介
基于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实现
- 下一篇:粗糙集属性约简
相关资源
- 用DIO 做的I2C程式
- I2C总线接口设计
- 8051F040SMBUS多机通信
- DHT10_I2C驱动.zip
- I2C串行EEPROM应用系统的健壮性设计
- 电子-GravityI2C3.7V锂电池电量计stm32L1
- arduino主机,stm8从机。I2C测试 。每次
- 10位ADC转换器AD5612(stm32_IO口模拟I2C)
- (带有源代码)基于FPGA的模拟I2C接口
- I2C-verilog-(非常详细的i2c学习心得)
- stm32f103iic读取AT24XX全系eeprom
- 分享一个0.96的oled显示驱动,软件模拟
- W5500移植+详解+官方驱动库
- DAC8571_I2C模式_STM32
- STM32F4 I2C从机中断
- ADS1110stm32驱动自带I2C驱动
- STM32F103C8 例程
- stm32 I2C主从机模式控制代码
- stellaris_icdi_nd
- 基于STM32F103硬件I2C读写24Cxx驱动代码的
- lm3s9b92DE Caculator
- OPC的X86和X64运行时库V2.0V3.0
- Ginkgo_USB-I2C_Classic_Setup_v2.9.2.zip
- TI Cortex-M3 BootLoader资料
- I2C从设备接收数据verilog代码实现
- CH341-I2C-labview-应用说明+VI-所有版本都
- LM3S库函数文档中文
- Delphi2CPP 和注册机
- STM32_MPU6050DMP硬件I2C读取欧拉角
- 基于FPGA的EEPROM读写系统
评论
共有 条评论