MSP430F149模拟IIC读写24C02程序】的更多相关文章

板子上设置了EEPROM存储器,型号为AT24C02.板子的硬件连接为:SCL--->P2.4,SDA--->P2.5.直接了当,贴上程序! ========================24cxx.h文件========================= #ifndef _24CXX_H_ #define _24CXX_H_ #include <msp430x14x.h> #define WRITE_ADDR 0xA0 //A0 A1 A2均接地 #define READ_AD…
2010-04-24 12:58:00 注:如果要读24c128或264,地址位为16位的.现在的地址位为8位. protues仿真图 源程序如下: #include <iom16v.h> #include <macros.h> #include "delay.h" #define I2C_DDR     DDRB #define I2C_PORT    PORTB #define I2C_PIN     PINB #define SDA         PB1…
 版权声明:本文为博主原创文章,允许转载,但希望标注转载来源. https://blog.csdn.net/qq_38410730/article/details/80312357 IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备.它是半双工通信方式. IIC总线最主要的优点是其简单性和有效性.由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空…
听说STM32的IIC硬件做的很鸡肋,所以在这里通过模拟的方式实现IIC协议.此程序能成功对AT24C02操作. 程序中的带参数宏 IIC_DELAY(time)的功能是延时time us,在实际中具体场合具体分析. 宏定义文件--IIC.h #ifndef _IIC_ #define _IIC_ #include "SysTick.h" #include "stm32f10x.h" #include "SystemConfig.h" /* 配置…
Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I2C通信吗? I2C作为常见串行通信的其中一种,在嵌入式领域中占有很重要的地位.原因在于我们嵌入式开发的产品中有很多设备都是使用I2C进行通信的.我们开始学习单片机开发的时候最先接触的应该是使用I2C操作EEPROM(如AT24C08)通信,这也是典型的I2C通信例子.其实还有很多常见的I2C通信设…
这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模拟iic的时序要求可能更高一点所以在原子哥的iic程序上做了修改,代码测验后已经不会死机,做个笔记,保存一下. #include "myiic.h" #include "delay.h" //初始化IIC void IIC_Init(void) { 19 GPIO_In…
推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前面 SPI(Serial Perripheral Interface)串行外设通信接口,主要实现设备(主从)之间的通信.硬件上由CS.SCK.MISO.MOSI四根通信线连接而成.关于SPI更多介绍不再详细描述,本文主要以STM32F103为主机.W25Q16为从机进行SPI通信实验. 本文将提供S…
最终效果展示 OLED屏幕和GY30光照传感器(BH1750FVI)都连接在一个IIC(I2C)总线上,所以只需要接4根线即可.获取到的光照强度可以在OLED上实时显示并通过串口打印.IIC是IO模拟IIC,方便后续代码的移植到各个单片机平台. 硬件汇总 单片机:STM32F103C8T6 OLED:0.96寸.128*64.驱动芯片是SSD1306(市场上常用) 光照强度传感器:GY-30,BH1750FVI主控即可 接线方法 IIC总线:SCL--PA1  . SDA--PA0 串口:TX-…
a - 什么是IIC总线 -什么是EEPROM -IIC总线的通信格式 模块化设计注解 整体代码 - 什么是IIC总线 IIC总线是同步通信的一种特殊形式,具有接线口少.控制简单.器件封装形式小.通信速率高等特点.在主从通信中,可以有多个IIC总线器件同时连接到IIC总线上,所有与IIC兼容的器件都具有标准的接口,通过地址来识别通信对象,使他们可以经由IIC总线互相直接通信. IIC总线由SDA数据线和SCL时钟线俩条线构成通信线路,既可发送数据也可以接收数据.在CPU和IC之间.IC与IC间都…
信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况. 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下拉状态,因而SCL对应的GPIO内部有下拉电阻,导致在输出为高电平时,上升沿慢的台阶出现.后把SCL脚的内部下拉disable之后,测试的波形如下图所示,从下图可以看出SCL时钟信号已经正常. 但是SDA存在小的脉冲尖峰和ACK的半高情况.具体见图中的红色圈所示. SDA小的脉冲尖峰出现在read_…
STM32F10x_模拟I2C读写EEPROM STM32F10x_硬件I2C读写EEPROM(标准外设库版本) STM32F10x_硬件I2C主从通信(轮询发送,中断接收)…
#ifndef __MYIIC_H_ #define __MYIIC_H_ #include "common.h" #include "delay.h" #include "debugserial.h" //sda 027 scl 028 //IO方向设置 #define IIC1_SDA_IN()  P0dir(27) = 0 #define IIC1_SDA_OUT() P0dir(27) = 1 //IO操作函数 #define IIC1_…
1.心血来潮看自己能不能参考时序图重新写一个IIC驱动,加强一下时序图的理解.记录下来,以后遇到此类的IIC时序的芯片可以直接操作. 先说说自己参照手册来写AT24c02的IIC低层驱动,从写完到最后调试成功所遇到的问题: 1.先确定SDA.SCL两根线的硬件连接. (由于自己换了一套开发板,自己当时没有意识到,最后发现了). 2.先调串口便于打印调试 (但是之前调试好的代码,竟然不能用)自己也是醉了.然后把总中断关掉,就莫名其妙的变好了.这个问题自己也没搞明白. 3.自己错在了起始信号那里,我…
#ifndef _IIC_H #define _IIC_H #include "stdio.h" #include "stm32f1xx_hal.h" /* 定义控制 SDA SCL 的宏 标准库版 #define I2C_SDA_UP GPIO_SetBits (GPIOC,GPIO_PIN_8) //SDA高电平 #define I2C_SDA_LOW GPIO_ResetBits(GPIOC,GPIO_PIN_8) //SDA低电平 #define I2C_S…
一.MPU6050中的IIC时序 1.1 START和STOP SDA和SCL在高电平时,SDA拉低表示START.SCL拉低,表示可以传输数据. SDA和SCL在低电平时,SDA拉高表示STOP. SCL拉高,表示传输数据结束. /****************************************** *函数原型: void IIC_Start(void) *功能: 产生IIC起始信号 ******************************************/ voi…
最近做的一个项目,是基于IIC总线通信的传感器系统.由于另外一个传感器使用的是类IIC协议,而不是标准IIC,所以MCU不能与其通信,最后没有办法,只有通过I/O口模拟的方式实现IIC的总线通信.具体的程序在我博客里在先前的早些时候已经贴出来了,如果有兴趣的可以查看我的博客. 主要终结一下我在这个过程中遇见的问题 1.在写完数据(指令或者地址)后 没有应答信号 一般开始的时序根据手册里面的时序图很容易可以写出,第一个没有应答,就有可能向从器件写完数据以后.一般这个时候主要检查的是,上升沿和下降沿…
一.概述 为了非常方便地对 I2C 从器件进行快速的.正确的读写操作,我们为此而设计出虚拟 I2C 总线操作平台软件包.本软件包是主方式下的虚拟 I2C 总线软件包,只要用户给子程序提供几个主要的参数,即可轻松地完成任何 I2C 总线外围器件的应用程序设计. I2C 总线是 PHILIPS 公司推出的芯片间串行数据传输总线,2 根线(SDA.SCL)即可实现完善的全双工同步数据传送,能够十分方便地地构成多机系统和外围器件扩展系统.I2C 器件是把 I2C 的协议植入器件的 I/O 接口,使用时器…
mini2440开发板提供的测试代码过于复杂,让人很难理解,而且有些错误,如GPE14-15不能设置上拉电阻,可是代码里却设置了,虽然无关紧要.为了方便学习,我在闲暇之时我研究了一下.IIC的原理是比较简单的,可是在实际编程中却遇到很多困难.不知道哪里出了错误,有些逻辑上认为正确的,但在硬件上却不能实现.如下两行代码: rGPECON &= ~(0x0f<<28); rGPECON |= (0xa0<<28); 是为设置GPE14.GPE15位SCL和SDA的,在加上第一句…
IIC是飞利浦公司开发的两线式串行总线,主要应用在单片机和外围电子器件之间的数据通讯. IIC总线优点是节约总线数,稳定,快速,是目前芯片制造上非常流行的一种总线,大多数单片机已经片内集成了IIC总线接口,无需用户自己模拟,只需配置相关寄存器即可使用,但是,为了更好地理解IIC总线协议,可以自行按照IIC时序图进行模拟,加深理解. IIC总线有两条串行线,其一是时钟线SCK,其二是数据线SDA. 在寻常的应用之中,单片机常常作为主机,外围器件作为从机使用. 每一个从机器件都拥有唯一的一个地址,这…
通过串口输入 R .W 进行控制程序读写IIC设备.波特率9600bps,晶振115200HZ. main.c /*----------------------------------------------- IIC编程 1 编写:Louis 邮箱:kaly.liu@163.com 日期:2015.06.01 改动:通过串口命令R/W,控制EEPROM的读R写W.并从串口提示. 改进:添加对页读写功能 晶振:11.0592MHZ NOTE:*通过实測发现.AT24C02能够连续写入16BYTE…