OpenEdv-开源电子网

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

MAX6675下载一次程序才更新一次数据,不能实时更新数据

[复制链接]

2

主题

9

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-2-3
在线时间
4 小时
发表于 2021-2-15 19:51:40 | 显示全部楼层 |阅读模式
5金钱
STM32F407
unsigned char MAX6675_ReadByte(void)
{
        u8 temp;
        temp = SPI1_ReadWriteByte(0xff);
       
        return temp;
}
u8 SPI1_ReadWriteByte(u8 TxData)
{
    u8 Rxdata;
    HAL_SPI_TransmitReceive(&SPI1_Handler,&TxData,&Rxdata,1, 1000);      
        return Rxdata;                                            
}


#define        MAX6675_CS                 PBout(14)
int main(void)
{

                u16 x=0;
                u32 t,i;
                u8 c;
                u8 flag;
                float temprature;
                HAL_Init();                     
                Stm32_Clock_Init(336,8,2,7);         
                delay_init(168);                      
                uart_init(115200);                    
                usmart_dev.init(84);                                                                                                                    
                LCD_Init();                                  
                MAX6675_Init();
                LCD_Clear(WHITE);   
                POINT_COLOR=RED;       
                while(1)
        {
               
                MAX6675_CS = 0;
                c = MAX6675_ReadByte();
                i = c;
                i = i<<8;
                c = MAX6675_ReadByte();
                MAX6675_CS = 1;
                i = i|((unsigned int)c);                        //i读取原始数据
                flag = i&0x04;                                                //保存热电偶状态
                t = i<<1;
                t = t>>4;
                temprature = t*0.25;
               
                if(i!=0)                                                        //max6675有返回数据
                {
                        if(flag==0)                                                //热电偶已连接
                        {
                                printf("原始数据是:o%04X,  当前温度是:%4.2f。\r\n",i,temprature);
                                LCD_ShowxNum(103,70,temprature,4,16,0);
                        }       
                        else                                                        //掉线
                        {
                                printf("未检测到\r\n");
                        }
               
                }
                else                                                                //max6675无返回数据
                {
                        printf("未连接\r\n");
                }
                for(i=0;i<0x2fffff;i++);                        //max6675转换时间0.2s左右
                 
                x++;
                delay_ms(10);
                if(x==20)
                {
                        LED0=!LED0;
                        x=0;
                }                  
        }       
}  

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

使用道具 举报

2

主题

9

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-2-3
在线时间
4 小时
 楼主| 发表于 2021-2-23 22:33:17 | 显示全部楼层
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-2-3
在线时间
4 小时
 楼主| 发表于 2021-2-23 22:34:00 | 显示全部楼层
已解决
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-2-3
在线时间
4 小时
 楼主| 发表于 2021-2-23 22:34:22 | 显示全部楼层
问题已解决
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2021-1-7
在线时间
31 小时
发表于 2022-9-4 17:29:33 | 显示全部楼层
请问是怎么解决的呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 15:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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