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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4049|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32串口讀取IM1253B_LCD1602顯示程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:832889 發(fā)表于 2021-4-25 21:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Stm32利用串口讀取IM1253B的數(shù)據(jù)在并行傳輸?shù)?602顯示屏上

單片機(jī)源程序如下:
  1. #include "Im1252.h"
  2. #include "bsp_usart.h"
  3. #define reveive_number  37

  4. unsigned char  Rx_Buffer[UART_BUFF_SIZE];
  5. unsigned char receive_finished;
  6. unsigned char Tx_Buffer[15];
  7. ShowDataTypeDef ShowDataSTructure;


  8. unsigned int calccrc(unsigned char crcbuf,unsigned int crc)
  9. {
  10.         unsigned char i;
  11.         unsigned char chk;
  12.         crc=crc^crcbuf;
  13.         for(i=0;i<8;i++)
  14.         {
  15.                 chk=(unsigned char)(crc&1);
  16.                 crc=crc>>1;
  17.                 crc=crc&0x7fff;
  18.                 if (chk==1)
  19.                         crc=crc^0xa001;
  20.                 crc=crc&0xffff;
  21.         }
  22.         return crc;
  23. }
  24. //CRC數(shù)據(jù)校正生成
  25. unsigned int chkcrc(unsigned char *buf,unsigned char len)
  26. {
  27.         unsigned char hi,lo;
  28.         unsigned int i;
  29.         unsigned int crc;
  30.         crc=0xFFFF;
  31.         for(i=0;i<len;i++)
  32.         {
  33.                 crc=calccrc(*buf,crc);
  34.                 buf++;
  35.         }
  36.         hi=( unsigned char)(crc%256);
  37.         lo=( unsigned char)(crc/256);
  38.         crc=(((unsigned int)(hi))<<8)|lo;
  39.         return crc;
  40. }
  41. //讀取數(shù)據(jù)
  42. void read_data(void)
  43. {
  44.                 union crcdata crcnow;
  45.         //定義一個地址區(qū)存放CRC校驗
  46.         // 到時間抄讀模塊,抄讀間隔 1 秒鐘(或其他)
  47.                 Tx_Buffer[0]=Read_ID; //模塊的 ID 號,默認(rèn) ID 為 0x01
  48.                 Tx_Buffer[1]=0x03;
  49.                 Tx_Buffer[2]=0x00;
  50.                 Tx_Buffer[3]=0x48;
  51.                 Tx_Buffer[4]=0x00;
  52.                 Tx_Buffer[5]=0x08;
  53.                 crcnow.word16=chkcrc(Tx_Buffer,6);
  54.                 Tx_Buffer[6]=crcnow.byte[1]; //CRC 效驗低字節(jié)在前
  55.                 Tx_Buffer[7]=crcnow.byte[0];  //發(fā)送 8 個數(shù)據(jù),請根據(jù)單片機(jī)類型自己編程
  56.                 Usart_SendArray(DEBUG_USARTx,Tx_Buffer,8);
  57. }
  58. //電能清零
  59. void Clear_EnergyData(void)
  60. {   //01 10 00 4B 00 02 04 00 00 00 00 B6 2C
  61.                 union crcdata crcnow;
  62.         //定義一個地址區(qū)存放CRC校驗
  63.         // 到時間抄讀模塊,抄讀間隔 1 秒鐘(或其他)  
  64.                 Tx_Buffer[0]=Read_ID; //模塊的 ID 號,默認(rèn) ID 為 0x01
  65.                 Tx_Buffer[1]=0x10;
  66.                 Tx_Buffer[2]=0x00;
  67.                 Tx_Buffer[3]=0x4B;
  68.                 Tx_Buffer[4]=0x00;
  69.                 Tx_Buffer[5]=0x02;
  70.                 Tx_Buffer[6]=0x04;
  71.                 Tx_Buffer[7]=0x00;
  72.                 Tx_Buffer[8]=0x00;
  73.                 Tx_Buffer[9]=0x00;
  74.                 Tx_Buffer[10]=0x00;       
  75.                 crcnow.word16=chkcrc(Tx_Buffer,11);
  76.                 Tx_Buffer[11]=crcnow.byte[1]; //CRC 效驗低字節(jié)在前
  77.                 Tx_Buffer[12]=crcnow.byte[0];  //發(fā)送 8 個數(shù)據(jù),請根據(jù)單片機(jī)類型自己編程
  78.                 Usart_SendArray(DEBUG_USARTx,Tx_Buffer,13);
  79. }
  80. //分析數(shù)據(jù)

  81. void Analysis_data(void)
  82. {
  83.         union crcdata crcnow;
  84.                 if(Rx_Buffer[0]==Read_ID) //確認(rèn) ID 正確
  85.                 {
  86.                         crcnow.word16=chkcrc(Rx_Buffer,reveive_number-2); //reveive_numbe 是接收數(shù)據(jù)總長度
  87.                         if((crcnow.byte[0]==Rx_Buffer[reveive_number-1])&&(crcnow.byte[1]==Rx_Buffer[reveive_number-2]))
  88.                         {
  89. //                                ShowDataStructure.Current_data1 = (uint8_t *)&Rx_Buffer[3];
  90.                                 //電壓數(shù)據(jù)
  91.                                 ShowDataSTructure.Voltage_data = (((uint32_t)(Rx_Buffer[3] ))<<24) |(((uint32_t)(Rx_Buffer[4]))<<16)  |(((uint32_t)(Rx_Buffer[5]))<<8)  |Rx_Buffer[6];
  92.                                 //電流數(shù)據(jù)
  93.                                 ShowDataSTructure.Current_data = (((uint32_t)(Rx_Buffer[7]))<<24)  |(((uint32_t)(Rx_Buffer[8]))<<16)  |(((uint32_t)(Rx_Buffer[9]))<<8)  |Rx_Buffer[10];
  94.                                 //有功數(shù)據(jù)
  95.                                 ShowDataSTructure.Power_data   = (((uint32_t)(Rx_Buffer[11]))<<24) |(((uint32_t)(Rx_Buffer[12]))<<16) |(((uint32_t)(Rx_Buffer[13]))<<8) |Rx_Buffer[14];
  96.                                 //有功總電能數(shù)據(jù)
  97.                                 ShowDataSTructure.Energy_data  = (((uint32_t)(Rx_Buffer[15]))<<24) |(((uint32_t)(Rx_Buffer[16]))<<16) |(((uint32_t)(Rx_Buffer[17]))<<8) |Rx_Buffer[18];
  98.                                 //功率因數(shù)數(shù)據(jù)
  99.                                 ShowDataSTructure.Pf_data      = (((uint32_t)(Rx_Buffer[19]))<<24) |(((uint32_t)(Rx_Buffer[20]))<<16) |(((uint32_t)(Rx_Buffer[21]))<<8) |Rx_Buffer[22];
  100.                                 //二氧化碳數(shù)據(jù)
  101.                                 ShowDataSTructure.CO2_data     = (((uint32_t)(Rx_Buffer[23]))<<24) |(((uint32_t)(Rx_Buffer[24]))<<16) |(((uint32_t)(Rx_Buffer[25]))<<8) |Rx_Buffer[26];
  102.                                 //溫度數(shù)據(jù)
  103.                                 ShowDataSTructure.Tem_data     = (((uint32_t)(Rx_Buffer[27]))<<24) |(((uint32_t)(Rx_Buffer[28]))<<16) |(((uint32_t)(Rx_Buffer[29]))<<8) |Rx_Buffer[30];
  104.                                 //頻率數(shù)據(jù)
  105.                                 ShowDataSTructure.Fre_data     = (((uint32_t)(Rx_Buffer[31]))<<24) |(((uint32_t)(Rx_Buffer[32]))<<16) |(((uint32_t)(Rx_Buffer[33]))<<8) |Rx_Buffer[34];
  106.                         }
  107.         }
  108. }
復(fù)制代碼

所有資料51hei提供下載:
單向電能.7z (201.72 KB, 下載次數(shù): 87)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:974135 發(fā)表于 2021-10-22 13:53 | 只看該作者
非常感謝,不知道8266怎么連
回復(fù)

使用道具 舉報

板凳
ID:626553 發(fā)表于 2022-1-25 19:03 來自手機(jī) | 只看該作者
blackboyz 發(fā)表于 2021-10-22 13:53
非常感謝,不知道8266怎么連

你好,esp8266咋接會了嗎?
回復(fù)

使用道具 舉報

地板
ID:1045269 發(fā)表于 2022-9-23 09:01 | 只看該作者
大佬,請問一下IM1253B的RX和TX口接STM32的那兩個口,看不太懂程序
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠热视频 | 男女视频在线看 | 久草成人 | 国产高清自拍视频在线观看 | 日韩精品一区二区三区在线观看 | 国产精品久久久久免费 | 成人在线电影网站 | 精品国产18久久久久久二百 | 久久久精品一区 | 视频1区 | 欧美 日韩 中文 | a久久 | 亚洲国产精品福利 | 亚洲一区二区在线播放 | 男人的天堂在线视频 | 国产精品一区二区在线 | 国产免费a视频 | 日韩精品一区二区三区久久 | 欧美二区在线 | 超碰高清| 久久久人成影片免费观看 | 在线播放亚洲 | 亚洲精品1区 | 成人亚洲综合 | 国产精品伦一区二区三级视频 | 亚洲国产网址 | 九九热热九九 | 午夜爽爽男女免费观看hd | 男女视频在线观看 | 国产麻豆乱码精品一区二区三区 | 中国三级黄色录像 | 欧美一级在线观看 | 日韩超碰在线 | 日韩亚洲一区二区 | 精品美女在线观看 | 亚洲精品9999久久久久 | 中文字幕一区二区三区在线乱码 | 九色.com| 一本久久a久久精品亚洲 | 日韩免费一区 | 男女av|