MSP430G2553的io口模拟spi读MAX6675求助

[复制链接]
3076|38
 楼主| libai233 发表于 2017-4-24 22:23 | 显示全部楼层 |阅读模式
本帖最后由 libai233 于 2017-4-25 12:25 编辑

用G2553的io口模拟spi读MAX6675的温度值,但是读出来一直是0,不知道是硬件问题还是软件问题,求大神解答..
硬件方面P2.0接DO,P2.1接CLK,P2.2接CS,程序如下:
  1. uint read_spi(void)//spi读16位
  2. {
  3.   
  4.   P2DIR &= ~BIT0;
  5.   P2DIR |=BIT1+BIT2;

  6.   P2OUT|=BIT2;//拉高片选开始转换
  7.    __delay_cycles (524288);
  8.   P2OUT&=~BIT2;//拉低片选开始读数
  9.   P2OUT|=BIT1;//sck上升沿
  10.   __delay_cycles (524288);
  11.   uchar i;
  12.   uint data=0;
  13.   for(i=0;i<16;i++);
  14.   {P2OUT&=~BIT1;//sck下降沿
  15. __delay_cycles (524288);
  16.   if(P2IN&BIT0)//判断收到电平
  17.   {data<<=1;
  18.    data=data+BIT0;
  19.   }
  20.   else data<<=1;
  21.   P2OUT|=BIT1;//sck上升沿
  22.   __delay_cycles (524288);
  23.   }
  24.   data<<=1;
  25.   data>>=4;
  26.   
  27.   return data ;
  28.   }

dirtwillfly 发表于 2017-4-25 08:47 | 显示全部楼层
观察过时序吗?能否把时序截图上传一下
 楼主| libai233 发表于 2017-4-25 10:03 | 显示全部楼层
dirtwillfly 发表于 2017-4-25 08:47
观察过时序吗?能否把时序截图上传一下


只有手册里max6675的时序..
dirtwillfly 发表于 2017-4-25 10:07 | 显示全部楼层
libai233 发表于 2017-4-25 10:03
只有手册里max6675的时序..

主要看你程序实现的时序是不是满足手册里的时序要求
 楼主| libai233 发表于 2017-4-25 10:08 | 显示全部楼层
dirtwillfly 发表于 2017-4-25 08:47
观察过时序吗?能否把时序截图上传一下

哎..图片好像挂掉了..再来一次..
 楼主| libai233 发表于 2017-4-25 10:14 | 显示全部楼层
dirtwillfly 发表于 2017-4-25 10:07
主要看你程序实现的时序是不是满足手册里的时序要求

呃..程序是按着51的例程写的..不知道问题出在哪..多谢大佬
Prry 发表于 2017-4-27 18:24 | 显示全部楼层
为啥不用硬件SPI?
 楼主| libai233 发表于 2017-4-27 21:01 | 显示全部楼层
Prry 发表于 2017-4-27 18:24
为啥不用硬件SPI?

只有一个硬件spi..被占了....
Prry 发表于 2017-4-27 21:45 | 显示全部楼层
libai233 发表于 2017-4-27 21:01
只有一个硬件spi..被占了....

你没了解spi的特点啊,spi特点就是可以挂多个外设啊,一个外设对应一根片选(cs)线就行了。而且,共用一个spi总线还是省去配置其他spi总线,如果没有严格实时要求,一个spi总线可以挂上多个外设。我就是这么干的。
 楼主| libai233 发表于 2017-4-27 21:53 | 显示全部楼层
Prry 发表于 2017-4-27 21:45
你没了解spi的特点啊,spi特点就是可以挂多个外设啊,一个外设对应一根片选(cs)线就行了。而且,共用一 ...

啊..另外一个设备需要用uart通信,这样也能挂多个么?
Prry 发表于 2017-4-27 23:06 | 显示全部楼层
libai233 发表于 2017-4-27 21:53
啊..另外一个设备需要用uart通信,这样也能挂多个么?

uart没法挂多个外设,只能一对一。单片机不外就i2c、spi、uart、can、485等,这些总线,要知道各自的特点
dirtwillfly 发表于 2017-4-28 08:01 | 显示全部楼层
Prry 发表于 2017-4-27 21:45
你没了解spi的特点啊,spi特点就是可以挂多个外设啊,一个外设对应一根片选(cs)线就行了。而且,共用一 ...

chuntian2016 发表于 2017-4-29 11:44 | 显示全部楼层
SPI总线的控制是关键
迪卡 发表于 2017-4-29 19:30 | 显示全部楼层
时序对上没有呢
Rollo 发表于 2017-4-30 22:54 | 显示全部楼层
通信类问题,要求时序的
uiint 发表于 2017-5-5 20:38 | 显示全部楼层
检查过硬件了吗?
51xlf 发表于 2017-5-5 20:39 | 显示全部楼层
使用示波器测量IO电平了吗?
i1mcu 发表于 2017-5-5 20:40 | 显示全部楼层
楼主使用上拉电阻了吗?
pmp 发表于 2017-5-5 20:42 | 显示全部楼层
SPI配置的地址对不对?
mmbs 发表于 2017-5-5 20:43 | 显示全部楼层
怎么不使用DB18B20?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部