IIC
C语言实现
参考原子哥iic代码

时序图

#include "iic.h"void IIC_Init(void)
{                         USER_GPIO->DATA_OUT |= (0x03);
}
void IIC_Start(void)
{GPIOWritePin(IIC_SDA,GPIO_SET);GPIOWritePin(IIC_SCL,GPIO_SET);delay_us(4);GPIOWritePin(IIC_SDA,GPIO_RESET);delay_us(4);GPIOWritePin(IIC_SCL,GPIO_RESET);
}
void IIC_Stop(void)
{   GPIOWritePin(IIC_SCL,GPIO_RESET);GPIOWritePin(IIC_SDA,GPIO_RESET);delay_us(6);GPIOWritePin(IIC_SCL,GPIO_SET);delay_us(3);GPIOWritePin(IIC_SDA,GPIO_SET);delay_us(3);
}
void IIC_Ack(void)
{uint16_t ucErrTime=0;delay_us(3);    GPIOWritePin(IIC_SCL,GPIO_SET);delay_us(6);   while(1){ucErrTime++;if(ucErrTime>300){//IIC_Stop();break;}}GPIOWritePin(IIC_SCL,GPIO_RESET);delay_us(15);return ;
} void IIC_Send_Byte(uint8_t txd)
{                        uint8_t t;         GPIOWritePin(IIC_SCL,GPIO_RESET);for(t=0;t<8;t++){              GPIOWritePin(IIC_SDA,(txd&0x80)>>7);txd<<=1;       delay_us(5);GPIOWritePin(IIC_SCL,GPIO_SET);delay_us(5);           GPIOWritePin(IIC_SCL,GPIO_RESET);//opt_delay(12);GPIOWritePin(IIC_SDA,GPIO_RESET);delay_us(5);}
}
void IICWrite(int reg, int data)
{IIC_Start();IIC_Send_Byte(0x58);IIC_Ack();IIC_Send_Byte(reg);IIC_Ack();IIC_Send_Byte(data);IIC_Ack();IIC_Stop();
}
uint8_t IICRead(int reg )
{int data=0;IIC_Start();IIC_Send_Byte(0x58);IIC_Ack();IIC_Send_Byte(reg);IIC_Ack();delay_us(5);IIC_Start();IIC_Send_Byte(0x59);IIC_Ack();Data = IIC_Read_Byte();IIC_Ack();IIC_Stop();return Data;
}
uint8_t IIC_Read_Byte()
{unsigned char i,receive=0;READ_SDA;for(i=0;i<8;i++ ){GPIOWritePin(IIC_SCL,GPIO_RESET);delay_us(5);GPIOWritePin(IIC_SCL,GPIO_SET);receive<<=1;if(READ_SDA)receive++;   delay_us(5); }IIC_Ack(); return receive;
}
#ifndef __IIC_H
#define __IIC_H
#include "main.h"#define IIC_SCL    0
#define IIC_SDA    1
#define READ_SDA   GPIOReadPin(1)void IIC_Init(void);                //³õʼ»¯IICµÄIO¿Ú
void IIC_Start(void);               //·¢ËÍIIC¿ªÊ¼ÐźÅ
void IIC_Stop(void);                //·¢ËÍIICÍ£Ö¹ÐźÅ
void IIC_Send_Byte(uint8_t txd);            //IIC·¢ËÍÒ»¸ö×Ö½Ú
void IIC_Ack(void);                 //IIC·¢ËÍACKÐźÅ
void IICWrite(int reg, int data);
uint8_t IICRead(int reg );
uint8_t IIC_Read_Byte();
#endif

QN8027 IIC 模拟接口C语言相关推荐

  1. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  2. Ariduino入门笔记——1. Arduino 默认函数(数字接口/模拟接口)

    说实话,对于我这种朝三暮四,动不动就要开新坑的人来说,肯定很多人都烦死了.没办法,因为脑袋里的猴子有点多,一直做一件事的话,我反而很容易就弃坑.也就是所谓新鲜感,隔一段时间回过头来看看草稿箱里有哪些稿 ...

  3. 计算机模拟软件分类,计算机水平考试-软件设计师分类模拟题程序语言(一)

    计算机水平考试-软件设计师分类模拟题程序语言(一) (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 软件设计师分类模拟题程序语言(- ...

  4. c语言接口作用是什么,单片机接口C语言开发技术

    单片机接口C语言开发技术 编辑 锁定 讨论 上传视频 <单片机接口C语言开发技术>是2009年清华大学出版社出版的图书,作者是龚运新.彭建军.[1] 书    名 单片机接口C语言开发技术 ...

  5. 基于51单片机+SHT30设计的环境温度与湿度检测设备(IIC模拟时序)

    一.项目介绍 当前文章介绍基于51单片机和SHT30传感器设计的环境温度与湿度检测设备.设备采用IIC模拟时序通信协议,能够实时监测环境的温度和湿度,并将数据通过LCD显示屏显示出来:可以广泛应用于室 ...

  6. c语言画图 钟表模拟程序,图形模拟时钟C语言课程设计

    图形模拟时钟C语言课程设计 更新时间:2017/2/2 9:03:00  浏览量:640  手机版 学号13082101182014-2015学年第二学期 <高级语言程序设计> 课程设计报 ...

  7. Java开发中使用模拟接口moco响应中文时乱码

    场景 在开发中需要依赖一些接口,比如需要请求一个返回Json数据的接口,但是返回Json数据的接口要么是没搭建,要么是交互比较复杂. 此时,就可以使用moco来模拟接口返回接口数据,以便开发和测试工作 ...

  8. Java开发中模拟接口工具moco的使用

    场景 在开发中需要依赖一些接口,比如需要请求一个返回Json数据的接口,但是返回Json数据的接口要么是没搭建,要么是交互比较复杂. 此时,就可以使用moco来模拟接口返回接口数据,以便开发和测试工作 ...

  9. vue 接口数据排序_Vue 使用 axios 请求 mock 模拟接口的数据

    安装使用 axios # axios 安装 使用npm install axios --save# main.js 引入 axiosimport axios from 'axios'Vue.proto ...

最新文章

  1. 康泰瑞影推高性能3D/4D超声可视化方案
  2. 我们公司是如何把项目中的2100个if-else彻底干掉的!
  3. 值得一做》关于并查集的进化题目 BZOJ1015(BZOJ第一页计划)(normal-)
  4. 数据的插入、更新、删除
  5. Hadoop如何迎击大数据分析的挑战
  6. QByteArray与char、int、float(及其数组)之间的互相转化
  7. android系统app打开蓝牙+设置可见性
  8. 用代码理解ObjC中的发送消息和消息转发
  9. 如何获取HTML元素所对应的javascript对象?
  10. 集成电路经典资料分享
  11. 检查pdf字体是否全部嵌入
  12. 使用高德地图JS API开发地图应用之获取Key及Jscode
  13. ibus mozc 日文输入法
  14. Android架构师能力素质模型
  15. Linux CentOS服务器时间同步阿里云北京时间
  16. 永恒之塔linux服务端,【永恒之塔单机5.8-6.5服务端】2020.06首发一键安装PC大型端游单机游戏客户端支持局域网联机玩[附视频搭建教程]...
  17. 【BOOST C++容器专题03】【05】Boost.CircularBuffer
  18. 中国超级计算机神威 上市公司,中国拟研发百亿亿级超级计算机 秒杀目前最快神威...
  19. 视频网站的工作原理-->m3u8视频文件的提取与解析(理论)
  20. css超出部分省略号显示

热门文章

  1. 为什么中国出不了Facebook和Twitter?
  2. Qt 5.15 LTS版本 安装教程 在线安装
  3. 7590 xps 拆机_全新戴尔XPS 15内部做工如何?两万元级戴尔XPS 15拆机图解评测
  4. 论文投稿指南——中文核心期刊推荐(机械、仪表工业3)
  5. App Store第一的社交App们,是怎样运营推广的?
  6. vc zip,unzip打包,解包
  7. 计算机启动键,电脑u盘启动按哪个键
  8. MYSQL秒杀的处理
  9. Win10迅雷下载速度为0的解决方法
  10. PHP 生成 ppt,PHP创建PowerPoint2007文档的方法