1.MAX31865
(1)簡介
MAX31865是簡單易用的熱敏電阻至數(shù)字輸出轉(zhuǎn)換器,,優(yōu)化用于鉑電阻溫度檢測器(RTD),。外部電阻設(shè)置RTD靈敏度,,高精度Δ- Σ ADC將RTD電阻與基準(zhǔn)電阻之比轉(zhuǎn)換為數(shù)字輸出,。MAX31865輸入具有高達±45V的過壓保護,,提供可配置的RTD及電纜開路,、短路條件檢測,。
(2)特點和優(yōu)點
集成更低系統(tǒng)功耗,,簡化設(shè)計,,減少設(shè)計周期:
簡便的RTD鉑電阻之?dāng)?shù)字轉(zhuǎn)換器;
支持100Ω至1kΩ (0°C時)鉑電阻RTD (PT100至PT1000),;
兼容于2線,、3線和4線傳感器連接;
SPI兼容接口,;
20引腳TQFN和SSOP封裝,;
高精度設(shè)備滿足誤差預(yù)算:
15位ADC分辨率,標(biāo)稱溫度分辨率為0.03125°C (隨RTD非線性變化),;
整個工作條件下,,總精度保持在0.5°C (0.05%滿量程);
全差分VREF輸入,;
轉(zhuǎn)換時間:21ms (最大值),;
集成故障檢測,,增加系統(tǒng)穩(wěn)定性:
±45V輸入保護;
故障檢測(RTD開路,、RTD短路到量程范圍以外的電壓或 RTD元件短路),。
(3)引腳圖和引腳說明
(4)SPI讀寫數(shù)據(jù)傳輸時序圖
(5)轉(zhuǎn)換溫度原理
(6)內(nèi)部寄存器
(7)典型應(yīng)用電路
(8)實際電路圖(三線制)
2.PT100溫度傳感器
圖中的兩個紅線中的任意一個和藍線之間即為PT100電阻,二線制時只需要將兩根紅線中的一根和藍線接入到電路即可,,三線制時需要將三根線都接入電路,。
3.液晶顯示屏顯示
使用TB1621驅(qū)動LCD進行顯示。
4.程序代碼
主函數(shù):
- #include "stm32f10x.h"
- #include "usart.h"
- #include "max31865.h"
- #include "HT1621.h"
- #include "stm32f10x_gpio.h"
- #include "spi.h"
-
- extern uint8_t Data_Buffer[8];
- extern uint8_t DRDY_Status(void);
- //extern void Inital_MAX31865(void) ;
- extern uint8_t MAX31865_Config;
-
-
- extern float Temperature;
- int main(void)
- {
-
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_DeInit();
- //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA , ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PA.8
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽式輸出
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- //用PB0讀取MAX31865的狀態(tài)
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PB.0
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ; //浮空輸入
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- uart_init(9600);
- printf("\r\nDetect\r\n");
-
- GPIO_ResetBits(GPIOA, GPIO_Pin_8);//set 0
-
- delay_init();
- ht1621_GPIO_Init();
- ht1621_Init();
- lcd_clear();//清屏
-
- <span style="white-space:pre"> </span>SPI1_Init();
- Max31865_Init();
-
- while(1)
- {
- Temperature = Get_Temperature();
- printf("temp=%f\r\n",Temperature);
- ht1621_TempDisplay(Temperature);
- }
- }
5.總結(jié)
(1)PA4,、PA5,、PA6、PA7端口可以復(fù)用重映像為SPI的CS,、SCK,、MISO、MOSI,,只需要將這四個端口配置為復(fù)用推挽輸出GPIO_Mode_AF_PP即可:
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
(2)三線制中MAX31865的5引腳和6引腳應(yīng)該是連接起來的,,之前的PCB上由于馬虎未連接;
(3)端口的輸入模式
GPIO_Mode_AIN:模擬輸入模式
GPIO_Mode_IN_FLOATING:浮空輸入模式(復(fù)位后的狀態(tài))
GPIO_Mode_IPD:下拉輸入模式
GPIO_Mode_IPU :上拉輸入模式
(4)端口的輸出模式
GPIO_Mode_Out_OD :通用開漏輸出模式
GPIO_Mode_Out_PP:通用推挽輸出模式
GPIO_Mode_AF_OD :復(fù)用開漏輸出模式
GPIO_Mode_AF_PP: 復(fù)用推挽輸出模式
(5) 在輸出模式下,,有2M,、10M、50MHz三種輸出速度可選擇,,這個速度是指I/O端口驅(qū)動電路的響應(yīng)速度而不是輸出信號的速度,,輸出信號的速度與程序有關(guān)。
GPIO_Speed_10MHz,
GPIO_Speed_2MHz,
GPIO_Speed_50MHz
http://blog.csdn.net/GSH_Hello_World/article/details/52900276?fps=1&locationNum=9
|