OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5903|回复: 3

MAX13865测温模块与51单片机通信

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-4-8
在线时间
1 小时
发表于 2019-4-8 21:17:54 | 显示全部楼层 |阅读模式
1金钱
请问有用51单片机与MAX31865模拟SPI通信的吗,通过串口助手在电脑上显示始终为0x00,希望有人能给指导一下,帮我看看是不是程序的问题
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SDI=P2^0;
sbit SCLK=P2^1;
sbit CS=P2^2;
sbit DRDY=P2^3;
sbit SDO=P2^4;
uchar i=0;
float temps;
void Delay(uint nCount)
{
for(; nCount != 0; nCount--);
}
uchar MAX31865_Read(uchar addr)    //SPI Single-Byte Read
{
    uchar read = 0;
    CS=0;
    //SCLK=1;
    Delay(0x1f);
for(i = 0; i < 8; i++)
{
  SCLK=1;
  if (addr & 0x80){SDI=1;}
  else {SDI=0;}
  Delay(0x1f);
  SCLK=0;
  addr <<= 1;
  Delay(0x1f);
}
Delay(0x1f);
for(i = 0; i < 8; i++)
{
  SCLK=1;
  read = read<<1;
  Delay(0x1f);
  if(SDO){read++;}
  SCLK=0;
  Delay(0x1f);
}
CS=1;
    return read;
}
void MAX31865_Write(uchar addr,uchar wdata)//SPI Single-Byte Write
{
CS=0;
Delay(0x1f);
for(i = 0; i< 8; i++)
{
  SCLK=1;
  if (addr & 0x80){SDI=1;}
  else {SDI=0;}
  Delay(0x1f);
  SCLK=0;
  addr <<= 1;
  Delay(0x1f);
}

for(i = 0; i < 8; i++)
{
  SCLK=1;
  if (wdata & 0x80){SDI=1;}
  else {SDI=0;}
  Delay(0x1f);
  SCLK=0;
  wdata <<= 1;
  Delay(0x1f);
}
CS=1;
}
void MAX31865_Init(void)
{
MAX31865_Write(0x80,0xd1);
Delay(0x1f);
CS=1;
SCLK=1;
}
void UART_send_byte(uchar dat)
{
SBUF=dat;
while(TI==0);
TI=0;
}
uchar Get_tempture(void)
{
uint dtemp[2];
uint data_temp;
dtemp[0]=MAX31865_Read(0x01);
dtemp[1]=MAX31865_Read(0x02);
data_temp=(dtemp[0]<<7)+(dtemp[1]>>1);      //Get 15Bit DATA
//temps=(data_temp*402)/32768.0;                     //Here is the rtd R value;
//temps=(temps-100)/0.385055;               //temperature
temps=data_temp/32.0-256;
return temps;
}
void configUART()
{
TMOD&=0X0F;
TMOD|=0x20;
SCON=0X50;
TH1=0Xfd;
TL1=TH1;
ET1=0;
TR1=1;
}
void main()
{
configUART();
MAX31865_Init();
Delay(0xff);
while(1)
{
  Delay(0xff);
  UART_send_byte(Get_tempture());
}
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165369
金钱
165369
注册时间
2010-12-1
在线时间
2110 小时
发表于 2019-4-9 01:17:35 | 显示全部楼层
自己找下原因,比如看IO是否有波形,波形是否正确?
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-5-30
在线时间
11 小时
发表于 2019-4-21 10:50:37 | 显示全部楼层
有人解决了吗 ?我也遇到这个问题
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2019-4-25
在线时间
0 小时
发表于 2019-4-25 11:35:18 来自手机 | 显示全部楼层
老哥你解决了嘛
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 06:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表