I2C协议概述,有相当详细的名词解释: 通信数量受限于地址空间和400Pf总线电容. 所有的数据传输过程中,SDA线的电平变化必须在SCL为低电平时进行,SDA线的电平在SCL线为高电平时要保持稳定. I2C通讯协议软件模拟实现方法: 1.起使信号 void I2C_Start(){ SDA_H; 3 delay(n); //电平切换时间 SCL_H; delay(>4us); //初始状态必须保持4us以上 SDA_L; //在SCL为高时,拉低SDA线发送起始信号. delay(>.7us…
/***************************************************************************** * * Filename: * --------- * soft_i2c.c * * * Description: * ------------ * Use GPIO simulate I2C interface. * * Author: * ------- * jimmy.li ******************************…
一 为达到类似C51的操作需要添加以下位带操作:#include "stm32f10x_gpio.h"#include "stm32f10x_conf.h" /* IO地址映射*/#define GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C #define GPIOB_ODR_Addr    (GPIOB_BASE+12) //0x40010C0C #define GPIOC_ODR_Addr    (GPIOC_BA…
·I2C总线的一些特征: 1. 只要求两条总线,一条串行数据线(SDA),一条串行时钟线(SCL) 2. 两个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机系统软件设定的地址:主机可以作为主机发送器或主机接收器 3. 它是一个真正的多主机总线,如果两个或更多个主机同时初始化数据传输,可以通过冲突检测和总裁防止数据被破坏 4. 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s 5. 片上的滤波器可以…
———————————————————————————————————————————— 参考地址: http://blog.csdn.net/junyeer/article/details/46480863 http://blog.csdn.net/bob_fly1984/article/details/22690381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -…
Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I2C通信吗? I2C作为常见串行通信的其中一种,在嵌入式领域中占有很重要的地位.原因在于我们嵌入式开发的产品中有很多设备都是使用I2C进行通信的.我们开始学习单片机开发的时候最先接触的应该是使用I2C操作EEPROM(如AT24C08)通信,这也是典型的I2C通信例子.其实还有很多常见的I2C通信设…
推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前面 SPI(Serial Perripheral Interface)串行外设通信接口,主要实现设备(主从)之间的通信.硬件上由CS.SCK.MISO.MOSI四根通信线连接而成.关于SPI更多介绍不再详细描述,本文主要以STM32F103为主机.W25Q16为从机进行SPI通信实验. 本文将提供S…
I2C总线协议的软件模拟实现方法 在上一篇博客中已经讲过I2C总线通信协议,本文讲述I2C总线协议的软件模拟实现方法. 1. 简述 所谓的I2C总线协议的软件模拟实现方法,就是用软件控制GPIO的输入.输出和高低电平变化,来模拟I2C总线通讯过程中SCL.SDA的电平变化来实现的. 2. I2C总线的封装 每个处理器对应的GPIO操作都有差异,即使是同一款处理器,不同的人也会有不同的GPIO封装风格,就以我个人习惯用的GPIO方法为例来进行讲解.我习惯上将GPIO的组和位封装为一个结构体,这样使…
I2C 与 Touch slide 最近做了一个与触摸滑条相关的测试,利用I2C通讯协议来配置触摸控制芯片的相关寄存器,读取触摸读数,并通过STM Studio动态显示触摸读数的变化过程.这个测试相对简单,只要搞定I2C通讯协议,后面的触摸控制芯片的相关寄存器配置就变得很简单了,所以我就简单地总结一下I2C通讯部分笔记. 实验平台:IAR 及 STM Studio 实验主芯片:自制STM8L051/101评估板 触摸控制芯片:ProxSense IQS263 使用硬件触摸滑条(Touch sli…
这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模拟iic的时序要求可能更高一点所以在原子哥的iic程序上做了修改,代码测验后已经不会死机,做个笔记,保存一下. #include "myiic.h" #include "delay.h" //初始化IIC void IIC_Init(void) { 19 GPIO_In…