打印

有没有调试过max6675的

[复制链接]
4656|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
橙子0_0|  楼主 | 2013-9-14 00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟最近在stm32上调试max6675,不知道有没有大侠调试过,是用spi方式采集数据,还是自己编写一个采集数据的程序片段啊,小弟在51单片机上调过该程序,可以采集,貌似按照时序编辑到stm32中,采集不到数据,求大神们指点
沙发
xxiao6130| | 2013-9-14 08:08 | 只看该作者
没用过,帮你顶起

使用特权

评论回复
板凳
outstanding| | 2013-9-14 10:56 | 只看该作者
没有调过,

使用特权

评论回复
地板
戈卫东| | 2013-9-14 15:20 | 只看该作者
STM32的SPI如果熟悉的话应该没什么困难...

使用特权

评论回复
5
橙子0_0|  楼主 | 2013-9-25 10:13 | 只看该作者
u16 read1(void)//spi模式下,单片机与max6675之间的通信,读取max6675的转化值
{
  unsigned char i=0;
  unsigned long Temp_2=0;//定义转化后的温度值
  __nop();
  Cs_L;
__nop();
  Clk_L;
__nop();
  Cs_L;//选中max6675,开始进行温度转化
  for(i=0;i<16;i++)//spi模式下数据帧的读取,一帧数据共有16位
  {
    Clk_H;
    Temp_2<<=1;//向左移动一位
        if(So_H==1){Temp_2=Temp_2|0x01;}//假如单片机接收数据线为1,则temp_2移动后的新的最低位置1
        else Temp_2=Temp_2|0x00;
        Clk_L;//SCK1=0;
__nop();
  }
  Cs_H;
  Temp_2=Temp_2<<1;//对收到的数据帧进行转化,其中的3到14位为转化后的数字值,向左移一位,取0-14位
  Temp_2=Temp_2>>4;//向右移4位,取3到14位,至此,12位的电压转化值全部取出
  Temp_2=Temp_2*102375/4096-300;//将转化后的数字量转化为温度值,转化公式为:t=temp*1023.75/4096,此处为了获取小数部分,对结果扩大了100倍
  return Temp_2;//将转化后的值作为
}

使用特权

评论回复
6
橙子0_0|  楼主 | 2013-9-25 10:15 | 只看该作者
这是从网上找到的,调试了一下,果然能用,忘了几句:
#define Cs_L  GPIO_ResetBits(GPIOG,GPIO_Pin_14);//片选信号置低
#define Cs_H  GPIO_SetBits(GPIOG,GPIO_Pin_14);//片选信号置高
#define Clk_L GPIO_ResetBits(GPIOG,GPIO_Pin_13);//时钟信号置低
#define Clk_H GPIO_SetBits(GPIOG,GPIO_Pin_13); //时钟信号置高
#define So_H GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_11)//读取输入位

使用特权

评论回复
7
LauJun| | 2014-5-6 09:03 | 只看该作者
我在51上调试,用打火机烧和室温也差不多

使用特权

评论回复
8
LauJun| | 2014-5-6 09:04 | 只看该作者
楼主能分享一下你在51上调试的程序吗?谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

145

帖子

1

粉丝