找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

二氧化碳傳感器MH-Z19/STM32代碼(串口傳輸數(shù)據(jù))

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
二氧化碳傳感器MH-Z19/STM32串口測(cè)試代碼


單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. int  CO2Data;
  6. u8   USART1Count;
  7. //定義串口發(fā)送命令
  8. uint16_t  CO2TxBuffer[9]={0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
  9. uint16_t  USART_RX_BUF_2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  10. /*******************************************************************************
  11. * 函 數(shù) 名         : CO2_Tx
  12. * 函數(shù)功能                     : 串口發(fā)送
  13. * 輸    入         : 無(wú)
  14. * 輸    出         : 無(wú)
  15. *******************************************************************************/
  16. void CO2_Tx()
  17. {
  18.         int i;
  19.   for(i = 0; i < 9; i++)
  20.    {
  21.                         USART_ClearFlag(USART1, USART_FLAG_TC);
  22.                         USART_SendData(USART1, CO2TxBuffer[i]);  
  23.                         while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);  
  24.    }
  25. }
  26. /*******************************************************************************
  27. * 函 數(shù) 名         : CheckSum
  28. * 函數(shù)功能                     : 校驗(yàn)和函數(shù)
  29. * 輸    入         : 無(wú)
  30. * 輸    出         : 無(wú)
  31. *******************************************************************************/
  32. void CheckSum()
  33. {
  34.          char i,checksum=0;
  35.                  for( i = 1; i < 8; i++)  
  36.                         {  
  37.                                 checksum += USART_RX_BUF_2[i];  
  38.                          }
  39.                          checksum = 0xff - checksum;  
  40.                         checksum += 1;                                         
  41.                                 if(checksum == USART_RX_BUF_2[8])        
  42.                                 CO2Data = USART_RX_BUF_2[2] * 256 + USART_RX_BUF_2[3];
  43.                                 if(CO2Data > 9999)
  44.                                 CO2Data=0;                                                           
  45.                                 printf("CO2濃度= %d ppm   \n", CO2Data);
  46. }

  47. /*******************************************************************************
  48. * 函 數(shù) 名         :  main
  49. * 函數(shù)功能                     : 主函數(shù)
  50. * 輸    入         : 無(wú)
  51. * 輸    出         : 無(wú)
  52. *******************************************************************************/
  53. int main(void)
  54. {
  55.         delay_init();            //延時(shí)函數(shù)初始化
  56.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  57.         LED_Init();
  58.         USART1_Init(9600);//串口1初始化,與傳感器的通信波特率固定位9600
  59.         while(1)
  60.         {
  61.                  CO2_Tx();
  62.                  delay_ms(1000);//        間隔一毫秒進(jìn)行一次命令發(fā)送
  63.                  CheckSum();
  64.                 }
  65.         }

  66. /*******************************************************************************
  67. * 函 數(shù) 名         : USART1_IRQHandler
  68. * 函數(shù)功能                     : 串口通信中斷函數(shù)
  69. * 輸    入         : 無(wú)
  70. * 輸    出         : 無(wú)
  71. *******************************************************************************/
  72. void USART1_IRQHandler(void)
  73. {
  74.     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
  75.         {         
  76.                                         USART_ClearFlag(USART1 , USART_FLAG_RXNE);
  77.                                         USART_RX_BUF_2[USART1Count++] = USART1->DR;
  78.                                 }
  79.                                 if(USART1Count>=9)
  80.                                 {
  81.                                         USART1Count=0;
  82.                                 }
  83. }
復(fù)制代碼

所有資料51hei提供下載:
二氧化碳傳感器MH-Z19代碼.7z (179.83 KB, 下載次數(shù): 181)
MH-Z19紅外二氧化碳傳感器.pdf (375.11 KB, 下載次數(shù): 95)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:523582 發(fā)表于 2019-4-28 13:39 | 只看該作者
請(qǐng)問(wèn)有MH-19B傳感器  51的代碼嗎,拜托
回復(fù)

使用道具 舉報(bào)

板凳
ID:306236 發(fā)表于 2019-5-23 21:19 | 只看該作者
小八110 發(fā)表于 2019-4-28 13:39
請(qǐng)問(wèn)有MH-19B傳感器  51的代碼嗎,拜托

有的,請(qǐng)問(wèn)還需要嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:115740 發(fā)表于 2019-5-28 21:56 | 只看該作者
troy8862 發(fā)表于 2019-5-23 21:19
有的,請(qǐng)問(wèn)還需要嗎?

有需要
回復(fù)

使用道具 舉報(bào)

5#
ID:115740 發(fā)表于 2019-5-28 21:57 | 只看該作者
troy8862 發(fā)表于 2019-5-23 21:19
有的,請(qǐng)問(wèn)還需要嗎?

有需要,樓主能發(fā)一份嘛?
回復(fù)

使用道具 舉報(bào)

6#
ID:115740 發(fā)表于 2019-5-28 22:02 | 只看該作者
樓主能提供一份51單片機(jī)的代碼嘛?謝謝
回復(fù)

使用道具 舉報(bào)

7#
ID:306236 發(fā)表于 2019-6-30 20:35 | 只看該作者
51單片機(jī)的代碼在我另一篇帖子里
回復(fù)

使用道具 舉報(bào)

8#
ID:420249 發(fā)表于 2019-8-5 11:41 | 只看該作者
請(qǐng)問(wèn)這段代碼是已經(jīng)將宏能實(shí)現(xiàn)了的是吧,我怎么拷貝過(guò)去,但功能實(shí)現(xiàn)不了

回復(fù)

使用道具 舉報(bào)

9#
ID:477661 發(fā)表于 2019-8-5 21:37 | 只看該作者
有需要。
回復(fù)

使用道具 舉報(bào)

10#
ID:621610 發(fā)表于 2019-10-10 14:14 | 只看該作者
troy8862 發(fā)表于 2019-5-23 21:19
有的,請(qǐng)問(wèn)還需要嗎?

需要MH-Z19B 代碼,怎么聯(lián)系你。
回復(fù)

使用道具 舉報(bào)

11#
ID:579624 發(fā)表于 2019-10-19 16:41 | 只看該作者
請(qǐng)問(wèn)MH-Z19接STM32的接口是用哪個(gè)?實(shí)驗(yàn)時(shí)候的連杜邦線MH-Z19四孔的那一端需要連接么
回復(fù)

使用道具 舉報(bào)

12#
ID:746230 發(fā)表于 2020-5-9 17:24 | 只看該作者
想問(wèn)下根據(jù)這個(gè)代碼的是怎么接線的啊
回復(fù)

使用道具 舉報(bào)

13#
ID:795701 發(fā)表于 2020-7-5 17:34 | 只看該作者
請(qǐng)問(wèn)可以求具體的電路連線嗎
回復(fù)

使用道具 舉報(bào)

14#
ID:836851 發(fā)表于 2020-10-30 22:16 | 只看該作者
樓主有CC2530單片機(jī)寫co2的代碼嗎
回復(fù)

使用道具 舉報(bào)

15#
ID:840063 發(fā)表于 2020-11-7 11:20 | 只看該作者
你這里傳感器和串口調(diào)試都接到串口1了嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:88964 發(fā)表于 2021-9-3 08:05 | 只看該作者
謝謝你,很好的資料
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表