STM32F407+MAX31855 +K型热电偶进行测温方案
STM32F407+MAX31855 +K型热电偶进行测温方案 一、首先硬件方面的实现:图1.MAX31855测温电路原理图注意:1.由于MAX31855本身不具备抗干扰性,要添加抗干扰电路2.热电偶分正负极,注意别接反了 二、软件程序大概分为三部分2.1首先是声明和定义#defineGPIOA_MAX31855_SCK GPIO_Pin_1#defineGPIOC_MAX31855_CS GPIO_Pin_5#defineGPIOC_MAX31855_SC GPIO_Pin_4#defineGPIOA_MAX31855_SCK_H GPIO_SetBits(GPIOA,GPIOA_MAX31855_SCK)#defineGPIOA_MAX31855_SCK_L GPIO_ResetBits(GPIOA,GPIOA_MAX31855_SCK)#defineGPIOC_MAX31855_CS_H GPIO_SetBits(GPIOC,GPIOC_MAX31855_CS)#defineGPIOC_MAX31855_CS_L GPIO_ResetBits(GPIOC,GPIOC_MAX31855_CS)#defineGPIOC_MAX31855_SC_IN (GPIOC->IDR & GPIOC_MAX31855_SC) 2.2MAX31855的初始化 图2.时序图void MAX31855_Init(){ GPIO_InitTypeDefGPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIOA_MAX31855_SCK;//max31855 sck GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIOC_MAX31855_CS;//max31855 cs GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIOC_MAX31855_SC;//max31855 scGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//注意读数据的端口要设置为普通输入模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(GPIOC, &GPIO_InitStructure); 篇幅过长,未完待续……谢谢分享,, zeshoufx 发表于 2020-6-9 13:42
谢谢分享,,
你用过MAX31855 吗 maximQ820270087 发表于 2020-6-10 11:02
你用过MAX31855 吗
没用过,,,不过看时序有点像spi 有没有完整的打包啊? BIILO 发表于 2020-7-18 11:53
有没有完整的打包啊?
有更新,也可以加我发你
页:
[1]