OpenEdv-开源电子网

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

max6675 测K型热电偶 SO端总是高电平

[复制链接]

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2020-12-26 12:37:16 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 asshole 于 2020-12-28 14:35 编辑

硬件设备核心是stm32f103rct,  max6675,连线应该是没问题的
昨天用买max6675提供的源代码直接烧录,可以测温度,说明max6675没问题

现在的问题是提供的源代码是利用的spi,但是我没有spi端口了,只能模拟,我的代码如下:
  1. #include "max6675.h"


  2. void MAX6675_Init(void)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStructure;

  5.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC , ENABLE);
复制代码
max6675.h文件
  1. #ifndef __MAX6675_H__
  2. #define __MAX6675_H__

  3. #include "sys.h"
  4. #include "delay.h"


  5. #define MAX6675_DELAY        delay_us(10);

  6. #define MAX6675_CS_H   GPIO_SetBits(GPIOC,GPIO_Pin_1)
  7. #define MAX6675_CS_L   GPIO_ResetBits(GPIOC,GPIO_Pin_1)
  8. #define MAX6675_CLK_H   GPIO_SetBits(GPIOC,GPIO_Pin_0)
  9. #define MAX6675_CLK_L   GPIO_ResetBits(GPIOC,GPIO_Pin_0)
  10. #define MAX6675_SO  GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)

  11. #endif
复制代码
main.c

  1. int main (void)
  2. {
  3.         u16 i;

  4.         MAX6675_Init();
  5.         USART1_Config();
  6.         delay_init();

  7.         while(1)
  8.         {

  9.                 i = MAX6675_ReadValue();
  10.                 SendOneByte1(i&0x00ff);
  11.                 SendOneByte1(i>>8);
  12.                 for(i=0;i<0x2fffff;i++);                        //max6675的转换时间是0.2秒左右,所以两次转换间隔不要太近
  13.         }
  14. }
复制代码
但是我打印出的SO全部都是1,不知道是为什么

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

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-12-26 15:36:15 | 显示全部楼层
GPIO_Mode_IPU是上拉输入,当然会一直是1了。你得配成开漏输出,加上拉电阻。
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
 楼主| 发表于 2020-12-28 11:36:45 | 显示全部楼层
c2007s 发表于 2020-12-26 15:36
GPIO_Mode_IPU是上拉输入,当然会一直是1了。你得配成开漏输出,加上拉电阻。

我换了个有上拉电阻的引脚,配置成上拉输入就好了,SO是输入端哦
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-12-28 14:26:05 | 显示全部楼层
asshole 发表于 2020-12-28 11:36
我换了个有上拉电阻的引脚,配置成上拉输入就好了,SO是输入端哦

SO是双向数据线。不只是输入
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
 楼主| 发表于 2020-12-28 15:32:40 | 显示全部楼层
c2007s 发表于 2020-12-28 14:26
SO是双向数据线。不只是输入

MAX6675里面,stm32作为主机,用spi的时候,so是miso,所以是主机输入,输入端
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 14:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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