已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共交通车辆动态监控实施方案
- 2029年企业并购协议合同三篇
- 2025年电网优化升级合作协议三篇
- 2026年驻马店平舆县卫生健康体育委员会所属事业单位引进高层次人才招聘30名考试备考试题及答案解析
- 地下车库交通标志标线与地坪漆工程施工设计方案
- 2026四川攀枝花盐边县人民医院临床护理招聘7人考试参考题库及答案解析
- 2026河南实达国际人力资源合作有限公司招聘辅助人员50人考试参考试题及答案解析
- 2025年预防近视主题活动方案
- 2026内蒙古鄂尔多斯资源股份有限公司招聘4人考试参考试题及答案解析
- 软件系统集成测试方案模板
- MOOC 刑法学总论-西南政法大学 中国大学慕课答案
- 2024年通信安全员ABC证考试题库附答案
- 《液压元件符号》课件
- 《景泰蓝的制作》叶圣陶-中职高一语文(高教版2023基础模块下册)
- 职业卫生与防护
- 国开计算机组网技术实训1:组建小型局域网
- (全)附着式升降脚手架监理实施细则
- 逻辑学导论(中山大学)【超星尔雅学习通】章节答案
- 新能源之氢能
- JJG 573-2003膜盒压力表
- GB/T 39130-2020镀锌产品锌层附着性试验方法
评论
0/150
提交评论