4701|11

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

大家帮我看看这是模拟I2C通信还是模拟SPI通信 [复制链接]

我用的launchpad控制OLED屏
//管教定义;
#define byte  unsigned char
#define word  unsigned int
#define dword unsigned long

#define DC_CLR P1OUT &=~BIT0
#define DC_SET P1OUT |=BIT0

#define RST_CLR P1OUT &=~BIT1
#define RST_SET P1OUT |=BIT1

#define SDA_CLR P1OUT &=~BIT2
#define SDA_SET P1OUT |=BIT2

#define SCL_CLR P1OUT &=~BIT3
#define SCL_SET P1OUT |=BIT3

#define X_WIDTH 128
#define Y_WIDTH 64


//向LCD写入地址     
void LCD_WrDat(unsigned char dat)
{
   unsigned char i=8;
     DC_SET;//数据位有效
     SCL_CLR; //时钟低电平时可以数据可以变化  
  while(i--)
  {
    if(dat&0x80)
      {SDA_SET;}
    else
      {SDA_CLR;}      
        SCL_SET ;        
        SCL_CLR;   
        dat<<=1;   
  }
}


//向LCD屏中写入命令
void LCD_WrCmd(unsigned char cmd)
{
    unsigned char i=8;
    DC_CLR;//指令位有效
    SCL_CLR;  
  while(i--)
  {
    if(cmd&0x80)
    {SDA_SET;}
    else{SDA_CLR;}
    SCL_SET;
    SCL_CLR;   
    cmd<<=1;   
  }        
}


这是其中几个程序,我感觉像是模拟SPI,因为模拟I2C要定义起始条件,结束条件,ACK啥的,这个完全没定义。
但是如果是SPI的话为啥有SDA和SCL……只是名字问题么??我刚开始学SPI不太懂想问问大家。

最新回复

i2C确实需要起始标识,停止标识。你找找操作OLED屏的过程的完整的程序。应该有这些标识。单独的函数并没有执行完整的一帧数据。能看一下波形最好。  详情 回复 发表于 2016-5-17 20:19
 
点赞 关注

回复
举报

4177

帖子

9

TA的资源

五彩晶圆(高级)

沙发
 
楼主,这个肯定是iic,我想对于iic和spi的概念您可能还是不太清楚,这点的话,建议从论坛搜搜相关帖子。
也可以在下载中心搜索相关资料进行熟悉相关概念性的东西。
ACK是应答

点评

这应该也不是硬件I2C啊,所以应该就是软件SPI,只不过口表述的是I2C的 SDA.SCL吧…………不知道我理解的对不对  详情 回复 发表于 2016-5-13 19:13
这是硬件I2C?反正我可以确定这肯定不是软件I2C  详情 回复 发表于 2016-5-13 18:55
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
huaiqiao 发表于 2016-5-13 18:39
楼主,这个肯定是iic,我想对于iic和spi的概念您可能还是不太清楚,这点的话,建议从论坛搜搜相关帖子。
...

这是硬件I2C?反正我可以确定这肯定不是软件I2C

点评

这个很明显的是硬件iic,具体怎么看您看芯片手册应该会有。自己看哦。  详情 回复 发表于 2016-5-13 21:50
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

4
 
huaiqiao 发表于 2016-5-13 18:39
楼主,这个肯定是iic,我想对于iic和spi的概念您可能还是不太清楚,这点的话,建议从论坛搜搜相关帖子。
...

这应该也不是硬件I2C啊,所以应该就是软件SPI,只不过口表述的是I2C的 SDA.SCL吧…………不知道我理解的对不对

点评

这个是iic,关于这个,我想楼主还是考虑下我2楼的回复,再看程序。别一上来就拿着程序发问,基本的概念首先要搞清楚哦。  详情 回复 发表于 2016-5-13 21:49
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

5
 
不管是spi还是IIC,都是一种通信方式,楼主中的程序既然是控制LCD的,那应该是看LCD的控制时序图。
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

1461

帖子

1

TA的资源

纯净的硅(中级)

6
 
就是软件I2C。明显就是通过直接操作io口来模拟时序
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

7
 
应该是软件模拟i2C啊。    if(dat&0x80)
      {SDA_SET;}
    else
      {SDA_CLR;}  先在sda上写数据,再给时钟信号。    你应该看看具体执行动作的完整的语句,这才能看到完整的时序过程。不是但看函数。

点评

但是我有个疑问?软件模拟I2C不应该对起始条件,终止条件这些东西都要软件编写的么???为什么我的那里面完全看不出有这些模拟的东西  详情 回复 发表于 2016-5-15 13:21
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

8
 
msp430learner 发表于 2016-5-13 19:13
这应该也不是硬件I2C啊,所以应该就是软件SPI,只不过口表述的是I2C的 SDA.SCL吧…………不知道我理解的 ...

这个是iic,关于这个,我想楼主还是考虑下我2楼的回复,再看程序。别一上来就拿着程序发问,基本的概念首先要搞清楚哦。
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

9
 
msp430learner 发表于 2016-5-13 18:55
这是硬件I2C?反正我可以确定这肯定不是软件I2C

这个很明显的是硬件iic,具体怎么看您看芯片手册应该会有。自己看哦。
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

10
 
            IIC通信
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

11
 
ienglgge 发表于 2016-5-13 20:35
应该是软件模拟i2C啊。    if(dat&0x80)
      {SDA_SET;}
    else
      {SDA_CLR;}  先在sda上写数据 ...

但是我有个疑问?软件模拟I2C不应该对起始条件,终止条件这些东西都要软件编写的么???为什么我的那里面完全看不出有这些模拟的东西

点评

i2C确实需要起始标识,停止标识。你找找操作OLED屏的过程的完整的程序。应该有这些标识。单独的函数并没有执行完整的一帧数据。能看一下波形最好。  详情 回复 发表于 2016-5-17 20:19
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

12
 
msp430learner 发表于 2016-5-15 13:21
但是我有个疑问?软件模拟I2C不应该对起始条件,终止条件这些东西都要软件编写的么???为什么我的那里 ...

i2C确实需要起始标识,停止标识。你找找操作OLED屏的过程的完整的程序。应该有这些标识。单独的函数并没有执行完整的一帧数据。能看一下波形最好。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表