资源简介
基于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实现
- 下一篇:粗糙集属性约简
相关资源
- STM32F4 I2C/IIC 驱动程序
- I2C_Software_Htu21d
- PIC通信源码+部分案例程序
- IIC通讯,实现多组端口使用
- 电子-STM32硬件I2CMaster接口函数V1.01.z
- sct15单片机读取mpl3115a2高度温度
- mpu6050 i2c驱动及测试程序
- MCP4725 I2C驱动
- STM32F103+模拟I2C实现
- STM32F4 硬件I2C 使用DMA
- STM32 MPU6050-DMP-欧拉角串口输出 滤波
- I2C SPEC (I2C Specification)
- AT24C08驱动
- CC2530单片机ADXL345的i2C程序
- 单片机或者STM32能直接用的sht读温湿度
- DSP6713 I2C传输
- 基于STM32实现的模拟I2C
- Arduino LiquidCrystal_I2C库
- I2C slaver 从机 Verilog代码实现
- i2c_master verilog源码与testbench
- 模拟I2C读写24C256和24C02
- I2C Master
- I2C总线规范V2.1中文版
- atsha204 认证程序基于I2C通信
- 24C01C/24C02C/24LC01B中文资料 I2C串行EEP
- STM32F103+VL53L0源代码.zip
- 串口/I2C调试工具
- Intel SoC处理器的I2C总线IP核设计与应用
- dw_apb_i2c_db.pdf
- DesignWare DW_apb_i2c Databook
评论
共有 条评论