久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9945|回復: 10
打印 上一主題 下一主題
收起左側

STM32F103+PT100+MAX31865+LCD1602+串口 源程序

  [復制鏈接]
跳轉到指定樓層
樓主
本設計基于MAX31865設計了一款上位機實時顯示當前溫度的溫控器,溫控器具有報警功能。
下位機采用usb串口供電,供電方式簡單,且可通過串口方式一鍵下載程序,不用使用額外的ST-LINK或者J-link下載。

STM32F103通過 SPI讀取MAX31865采集鉑電阻PT100溫度并通過 串口發送溫度值的實驗程序。
壓縮包包括:
程序源代碼
MAX31865芯片手冊(pdf格式 中文)

程序使用三線制,內通過修改寄存器數值,改成二線制以及四線制。

高精度設備滿足誤差預算:
15位ADC分辨率,標稱溫度分辨率為0.03125°C (隨RTD非線性變化);
整個工作條件下,總精度保持在0.5°C (0.05%滿量程);
全差分VREF輸入;
轉換時間:21ms (最大值);
集成故障檢測,增加系統穩定性:



單片機源程序如下:
  1. #include "max31865.h"
  2. #include "spi.h"
  3. #include "delay.h"

  4. //max chushihua
  5. void MAX31865_Int(void)
  6. {
  7.         
  8.         GPIO_InitTypeDef        GPIO_InitStructure;
  9.                
  10.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能PB端口時鐘
  11. //        MAX31865_DRDY_APBxClkCmd(GPIO_Pin_11, ENABLE);
  12.         
  13.         
  14.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  15.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽輸出
  16.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO口速度為50MHz
  17.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                //初始化GPIB15,14,13
  18.         
  19.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  20.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        //推挽輸出
  21.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                //初始化GPIB15,14,13
  22.         
  23.         SPI2_Init();
  24.         SPI2_SetSpeed(SPI_BaudRatePrescaler_16);
  25. }
  26. /* 向MAX31865發送數據 */
  27. void MAX31865_SendData(uint8_t addr , uint8_t data)
  28. {
  29.         SPI_MAX31865_CS_LOW();

  30.         SPI2_ReadWriteByte(addr);

  31.         SPI2_ReadWriteByte(data);

  32.         SPI_MAX31865_CS_HIGH();
  33. }

  34. /* 從MAX31865讀取數據 */
  35. uint8_t MAX31865_ReceiveData(uint8_t addr)
  36. {
  37.         uint8_t data;

  38.         SPI_MAX31865_CS_LOW();


  39.         SPI2_ReadWriteByte(addr);

  40.         data = SPI2_ReadWriteByte(addr);

  41.         SPI_MAX31865_CS_HIGH();
  42.         return data;
  43. }


  44. //void MAX31855_ReadData()
  45. //{
  46. //        u32 data=0;
  47. //        int i;
  48. //        SPI_MAX31865_CS_LOW();
  49. //        delay_ms(1);
  50. //        for(i=31;i>=0;i--)
  51. //                 GPIOA_MAX31855_SCK_H;
  52. //                        delay_ms(1);
  53. //               

  54. //}
復制代碼
  1. #include "stm32f10x.h"
  2. #include "spi.h"
  3. //#include "./usart/bsp_usart_dma.h"
  4. #include "max31865.h"
  5. #include "lcd1602.h"
  6. #include "delay.h"
  7. #include "usart.h"
  8. //uint8_t read_temp_HIGH;
  9. //uint8_t read_temp_LOW;
  10. //uint16_t read_temp;
  11. u8 i;
  12.    u16 s1;
  13.    u16 s2;
  14.          u16 s3=0;
  15.          u32 s4=0;
  16.          u16 s5;
  17.          unsigned long wd=0;
  18. int main(void)
  19. {
  20.                 SystemInit();
  21.                 delay_init();                     //延時函數初始化         
  22.                 LCD1602_Init();                        //1602初始化
  23.                 SPI2_Init();                        //spi初始化
  24.                 MAX31865_Int();                        //MAX初始化ADC1
  25.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  26.                 uart_init(115200);                 //串口初始化為115200
  27.         
  28.         while(1)
  29.         {        
  30.                
  31.                 MAX31865_SendData(MAX31856_CONFIG_3WIRE,0xc1);
  32.                 MAX31865_SendData(MAX31856_CONFIG_REG,0xf2);    //11110010
  33.                 s1=MAX31865_ReceiveData(MAX31856_RTDMSB_REG);
  34.                 s2=MAX31865_ReceiveData(MAX31856_RTDLSB_REG);
  35.                 s3=(s1<<8) | s2;
  36.                 printf("s3:%x",s3);
  37. //                delay_ms(50);
  38.                 s3=s3>>1;
  39. //                s3=s3&0xfffe;
  40.                
  41.                 wd=(s3/32)-256;
  42.                 printf("wd:%d\r\n",wd);
  43.                 LCD1602_Show_Str(0,0,"WD:");
  44. //                LCD1602_Write_Dat(wd/100%10+0x30);
  45.                 LCD1602_Write_Dat(wd/10%10+0x30);
  46. //                LCD1602_Show_Str(5,0,".");
  47.                 LCD1602_Write_Dat(wd%10+0x30);

  48.                 LCD1602_Show_Str(9,0,"^C");

  49.         }
  50. }
復制代碼


所有資料51hei提供下載:
MAX31865_PT100_源代碼.7z (192.12 KB, 下載次數: 430)
max31865資料.zip (457.42 KB, 下載次數: 192)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:337609 發表于 2022-3-14 18:41 | 只看該作者
樓主您好,這款測量的溫度范圍是多少?
回復

使用道具 舉報

板凳
ID:235954 發表于 2022-4-27 10:43 | 只看該作者
984055 發表于 2022-3-14 18:41
樓主您好,這款測量的溫度范圍是多少?

測量范圍是根據PTC的器件參數決定
回復

使用道具 舉報

地板
ID:622096 發表于 2022-6-10 18:46 | 只看該作者
您好,這個精度能達到多少
回復

使用道具 舉報

5#
ID:493412 發表于 2022-11-27 19:26 | 只看該作者
感謝樓主分享,模塊收到了測試是否可行
回復

使用道具 舉報

6#
ID:748535 發表于 2023-8-14 19:49 | 只看該作者
剛好需要來參考
回復

使用道具 舉報

7#
ID:62363 發表于 2023-10-29 18:36 | 只看該作者
程序里用的SPI2,管腳B13/14/15。為什么帖子里面的原理圖畫的PA4/5/6/7呢?本想按圖接呢,發現對不上
回復

使用道具 舉報

8#
ID:444215 發表于 2023-11-6 17:05 | 只看該作者
下載看了下,沒原理圖呢?
回復

使用道具 舉報

9#
ID:140644 發表于 2023-12-7 18:58 | 只看該作者
NICE.
回復

使用道具 舉報

10#
ID:25103 發表于 2024-10-2 19:18 | 只看該作者
謝謝樓主分享,學習學習!!
回復

使用道具 舉報

11#
ID:25103 發表于 2025-1-1 09:43 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区中文字幕在线观看 | 91视频网址 | 欧美一二三 | 午夜免费网| av喷水| 特a毛片| 日日干日日色 | 人人cao| 中文字幕亚洲一区二区三区 | 国产综合在线视频 | 国产欧美性成人精品午夜 | 一区二区高清在线观看 | 午夜伦理影院 | 另类专区成人 | 欧美视频 | 永久免费在线观看 | 欧美一区二区三区 | 国产精品国产三级国产aⅴ中文 | 亚洲精品1区| 久久久片 | 亚洲精品乱码久久久久久按摩 | 国产婷婷色一区二区三区 | 精品亚洲一区二区三区四区五区 | www.99re| 久久久久免费 | 欧美在线观看免费观看视频 | 国产精品一卡二卡三卡 | 99久久精品免费看国产四区 | 午夜影院在线 | 日韩视频在线播放 | 一区二区三区四区av | 999久久久国产精品 欧美成人h版在线观看 | 在线播放国产一区二区三区 | 免费一级淫片aaa片毛片a级 | 日韩电影一区二区三区 | 日韩一区二 | 国产视频1区 | 亚洲国产精品suv | 日韩三极| 欧美人人| 久久国产亚洲 |