找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3840|回复: 3
打印 上一主题 下一主题
收起左侧

MAX31865 串口读出数据为0 求教

[复制链接]
跳转到指定楼层
楼主
ID:307274 发表于 2019-4-21 11:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问有用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());
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:478261 发表于 2019-7-4 23:42 | 只看该作者
你好,请问这个问题解决了吗?我遇到同样的问题了
回复

使用道具 举报

板凳
ID:275742 发表于 2020-5-17 20:05 | 只看该作者
这里提供51和stm32的例程,可以点击链接看看
MAX31865 RTD铂电阻温度检测器 PT100至PT1000传感器模块-那个宝搜索这个
回复

使用道具 举报

地板
ID:140644 发表于 2024-1-16 08:12 | 只看该作者
中断EA呢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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