已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档/* File Name : SI2C.c* Author : zhang* Version : V1.0.0* Date : 2011.12.08*/* Inlcudes -*/#include SI2C.h#include delay.h/* defines -*/#define Slave_Address_W 0xa0#define Slave_Address_R 0xa1#define Byte_Address 0x00#define SDA_PORT GPIOE#define SDA_PIN GPIO_PIN_2#define SDA_HIGH() GPIO_WriteHigh(SDA_PORT,SDA_PIN)#define SDA_LOW() GPIO_WriteLow(SDA_PORT,SDA_PIN)#define SCL_PORT GPIOE#define SCL_PIN GPIO_PIN_1#define SCL_HIGH() GPIO_WriteHigh(SCL_PORT,SCL_PIN)#define SCL_LOW() GPIO_WriteLow(SCL_PORT,SCL_PIN)#define SDA_READ() GPIO_ReadInputPin(SDA_PORT,SDA_PIN)/* function -*/* Function Name : SI2C_GPIOConfigration* Description : 初始化模拟I2C通用端口 * Input : None* Output : None* Return : None*/ void SI2C_GPIOConfigration(void) GPIO_Init(SDA_PORT,SDA_PIN,GPIO_MODE_OUT_OD_LOW_FAST); /SDA开漏输出 GPIO_Init(SCL_PORT,SCL_PIN,GPIO_MODE_OUT_PP_LOW_FAST); /SCL推挽输出 /*I2C总线初始为高电平*/ SDA_HIGH(); SCL_HIGH(); /* Function Name : SI2C_Start* Description : I2C起始条件 * Input : None* Output : None* Return : None*/void SI2C_Start(void) SDA_HIGH(); SCL_HIGH(); /delay(10); / nop(); /起始条件建立时间大于4.7us /nop(); SDA_LOW(); /起始条件锁定时间大于4us / nop(); / nop(); SCL_LOW(); /钳住总线准备发数据/* Function Name : SI2C_Stop* Description : I2C结束条件 * Input : None* Output : None* Return : None*/void SI2C_Stop(void) SDA_LOW(); SCL_HIGH(); /发送总线时钟信号 / nop(); / nop(); /结束总线时间大于4us SDA_HIGH(); /结束总线 / nop(); / nop(); /* Function Name : SI2C_SendAck* Description : 主机发送ACK * Input : None* Output : None* Return : None*/void SI2C_SendAck(void) SDA_LOW(); SCL_HIGH(); /nop(); / nop(); SCL_LOW(); SDA_HIGH(); /* Function Name : SI2C_SendNAck* Description : 主机发送ACK * Input : None* Output : None* Return : None*/void SI2C_SendNAck(void) SDA_HIGH(); SCL_HIGH(); / nop(); / nop(); SCL_LOW(); SDA_LOW(); /* Function Name : SI2C_SendByte* Description : I2C发送一个字节 * Input : SendByte :要发送的字节* Output : None* Return : None*/void SI2C_SendByte(u8 SendByte) u8 i; for( i = 0 ; i 8 ; i +) (SendByte & 0x80) = 0x80) ? SDA_HIGH():SDA_LOW(); SCL_HIGH(); /nop(); /nop(); SCL_LOW(); SendByte = SendByte 1; /* Function Name : Test_Ack* Description : 应答位检测程序 * Input : None* Output : None* Return : FALSE or TRUE*/int Test_Ack(void) SDA_HIGH(); /*为输入做准备,确保从机ACK真正为低*/ SCL_HIGH(); / nop(); / nop(); if (SDA_READ() SCL_LOW(); SDA_LOW(); / nop(); / nop(); return FALSE; else SDA_LOW(); SCL_LOW(); / nop(); / nop(); return TRUE; /* Function Name : SI2C_ReadByte* Description : I2C读取一个字节 * Input : None* Output : None* Return : None*/u8 SI2C_ReadByte(void) u8 readbyte = 0; u8 i ; for( i = 0; i 8 ; i + ) readbyte = readbyte 1; SDA_HIGH(); SCL_HIGH(); / nop(); / nop(); if(SDA_READ() readbyte |= 0x01; SCL_LOW(); / nop(); / nop(); return readbyte; /* Function Name : SI2C_Write24c02* Description : SI2C_Write24c02 operation* Input : None* Output : None* Return : None*/ void SI2C_Write24c02(u8 data) SI2C_Start(); SI2C_SendByte(Slave_Address_W); Test_Ack(); SI2C_SendByte(Byte_Address); Test_Ack(); SI2C_SendByte(data); Test_Ack(); SI2C_Stop(); delay(1000); /* Function Name : I2C_Read24c02* Description : I2C_Read24c02 operation* Input : None* Output : None* Return : None*/ u8 SI2C_Read24c02(void) u8 con; SI2C_Start(); SI2C_SendByte(Slave_Address_W); Test_Ack(); SI2C_SendByt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026雄安社区面试题及答案
- 2026药品实操面试题目及答案
- 2026易班运营面试题及答案
- 2026优抚医院面试题目及答案
- 2026中国医疗检查设备行业市场细分动态发展趋势分析研究投资评估规划报告
- 2026年新入伍士兵思想状况调查报告(3篇)
- 2026中国智能车载智能制造行业市场现状供需分析及投资评估规划分析研究报告
- 2026瑞典家电子行业市场现状分析及投资评估规划分析报告
- 2026中国云计算数据中心绿色节能技术应用趋势报告
- 湖北省天门市2027届数学四上期末质量检测模拟试题含解析
- 课件-隧道施工安全培训
- 脑干出血治疗指南
- 丰乳肥臀在线阅读
- 心境情感障碍的护理查房
- 《公路边坡灾害监测技术指南》
- 腹腔镜手术皮下气肿处理
- 2025届高三数学一轮复习-分段函数专项训练【含答案】
- 《幼儿园班级管理》:幼儿园班级管理原则
- 耳针法(耳穴埋豆)操作评分标准
- 桥梁墩柱施工方案评审
- 安全生产工作总体目标和年度安全生产目标
评论
0/150
提交评论