MSP430G2553的io口模拟spi读MAX6675求助

2019-07-17 15:39发布

本帖最后由 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.   }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
dirtwillfly
1楼-- · 2019-07-17 16:04
观察过时序吗?能否把时序截图上传一下
libai233
2楼-- · 2019-07-17 17:02
dirtwillfly 发表于 2017-4-25 08:47
观察过时序吗?能否把时序截图上传一下


只有手册里max6675的时序..
dirtwillfly
3楼-- · 2019-07-17 19:11
 精彩回答 2  元偷偷看……
libai233
4楼-- · 2019-07-17 21:58
dirtwillfly 发表于 2017-4-25 08:47
观察过时序吗?能否把时序截图上传一下

哎..图片好像挂掉了..再来一次..
libai233
5楼-- · 2019-07-18 01:30
dirtwillfly 发表于 2017-4-25 10:07
主要看你程序实现的时序是不是满足手册里的时序要求

呃..程序是按着51的例程写的..不知道问题出在哪..多谢大佬
Prry
6楼-- · 2019-07-18 02:02
为啥不用硬件SPI?

一周热门 更多>