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

標題: STC12C5A60S2單片機接MAX485模塊,讀取485溫濕度傳感器的數據(MODBUS)OLED顯示程序 [打印本頁]

作者: wsh123456789    時間: 2022-1-17 23:19
標題: STC12C5A60S2單片機接MAX485模塊,讀取485溫濕度傳感器的數據(MODBUS)OLED顯示程序
STC12C5A60S2單片機接MAX485模塊,讀取485溫濕度傳感器的數據(MODBUS),并顯示在OLED屏上
說明:主機發送數據幀:01 03 02 00 00 03 04 73


單片機源程序如下:

  1. /************************************************************************************
  2. 功能:單片機作為主機讀取基于RS485的MODBUS協議的溫濕度傳感器數據測試
  3. **************************************************************************************/
  4. //頭文件
  5. #include "main.h"

  6. int temp=2500;
  7. int humidity=3500;

  8. unsigned char code read_temp_hum_cmd[]={0x01,0x03,0x02,0x00,0x00,0x03,0x04,0x73};

  9. void main(void)
  10. {
  11.         Timer0Init();
  12.         UartInit();
  13.         OLED_Init();
  14.         OLED_Clear();
  15.         EA = 1;
  16.         printf("RS485 Modbus Test\r\n");
  17.         while(1)
  18.         {
  19.         if (sec_flag)
  20.         {
  21.         sec_flag=0;
  22.         uart_sendbuf(read_temp_hum_cmd,8);
  23.         }
  24.         if (rxd_flag)
  25.         {
  26.         rxd_flag=0;
  27.         uart_sendbuf(rxd_buf,rxd_index);
  28.         modbus_handle(rxd_buf,rxd_index);
  29.         rxd_index=0;
  30.         }
  31.         display_temp_hum(temp,humidity);
  32.         }
  33. }

  34. void display_temp_hum(int t,int h)
  35. {
  36.   unsigned char tempstr[8];
  37.   unsigned char humiditystr[8];
  38.   if(t<0)
  39.   {
  40.     IntegerToStr(t,tempstr);
  41.         OLED_ShowString(0,4,"TEMP:",16);
  42.         OLED_ShowString(48,4,tempstr,16);
  43.   }
  44.   else
  45.   {
  46.     IntegerToStr(t,tempstr);
  47.         OLED_ShowString(0,4,"TEMP:",16);
  48.         OLED_ShowString(56,4,tempstr,16);
  49.   }
  50.   IntegerToStr(h,humiditystr);
  51.   OLED_ShowString(0,6,"RH  :",16);
  52.   OLED_ShowString(56,6,humiditystr,16);
  53.   OLED_ShowChar(96,6,'%',16);
  54. }

  55. void modbus_handle(unsigned char *buf,unsigned char len)
  56. {
  57.   unsigned int crc;
  58.   unsigned char crch,crcl;

  59.   if (buf[0] != TEMP_HUM_ADDR)
  60.   {
  61.   return;
  62.   }
  63.   else if (buf[0] == TEMP_HUM_ADDR)
  64.   {
  65.        crc=GetCRC16(buf,len-2);
  66.        crch=crc>>8;
  67.        crcl=crc&0xff;
  68.       if((buf[len-2]!=crch)||(buf[len-1]!=crcl))
  69.       {
  70.       return;
  71.       }
  72.       temp=((int)buf[3]<<8) + buf[4];
  73.       humidity=((int)buf[5]<<8) + buf[6];
  74.   }
  75. }
復制代碼

Keil代碼下載:
RS485型MODBUS協議的溫濕度傳感器.zip (112.17 KB, 下載次數: 164)



作者: allkvv009    時間: 2023-12-9 19:36
#include "main.h"頭文件是什么,是標準的庫文件碼





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 高清av在线| 91麻豆精品国产91久久久久久久久 | 伊人免费在线观看 | 精品一区电影 | 久久久久久久久久久久久久久久久久久久 | 黄网站免费在线 | 久久的色 | 国产一级黄色网 | 国产亚洲一区二区三区在线观看 | 国产 欧美 日韩 一区 | 91精品久久久久久久久 | 我要看一级片 | 久草免费在线视频 | 久久久av中文字幕 | 亚洲欧美日韩精品久久亚洲区 | 国产综合一区二区 | 国产精品特级毛片一区二区三区 | 久久国产一区 | 欧美精品一区二区三区在线播放 | 美女久久久久久久 | 亚洲黄色一区二区三区 | 欧美激情在线精品一区二区三区 | 亚洲精品久久久久久首妖 | 综合网在线 | 免费在线观看av | 在线观看日本高清二区 | 国产欧美一区二区三区日本久久久 | 九九热在线视频观看这里只有精品 | 精品国产欧美 | 7777精品伊人久久精品影视 | 欧美三级电影在线播放 | 欧美一级大片 | 99精品国产一区二区青青牛奶 | 亚洲成人久久久 | 精品国偷自产在线 | 亚洲精品女人久久久 | 99热在线播放 | 国产精品视频偷伦精品视频 | 日韩欧美电影在线 | 国产专区在线 | 一区二区三区视频在线免费观看 |