标题: 二氧化碳传感器MH-Z19/STM32代码(串口传输数据) [打印本页]

作者: troy8862    时间: 2019-4-11 16:22
标题: 二氧化碳传感器MH-Z19/STM32代码(串口传输数据)
二氧化碳传感器MH-Z19/STM32串口测试代码


单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. int  CO2Data;
  6. u8   USART1Count;
  7. //定义串口发送命令
  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. * 函 数 名         : CO2_Tx
  12. * 函数功能                     : 串口发送
  13. * 输    入         : 无
  14. * 输    出         : 无
  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. * 函 数 名         : CheckSum
  28. * 函数功能                     : 校验和函数
  29. * 输    入         : 无
  30. * 输    出         : 无
  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. * 函 数 名         :  main
  49. * 函数功能                     : 主函数
  50. * 输    入         : 无
  51. * 输    出         : 无
  52. *******************************************************************************/
  53. int main(void)
  54. {
  55.         delay_init();            //延时函数初始化
  56.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  57.         LED_Init();
  58.         USART1_Init(9600);//串口1初始化,与传感器的通信波特率固定位9600
  59.         while(1)
  60.         {
  61.                  CO2_Tx();
  62.                  delay_ms(1000);//        间隔一毫秒进行一次命令发送
  63.                  CheckSum();
  64.                 }
  65.         }

  66. /*******************************************************************************
  67. * 函 数 名         : USART1_IRQHandler
  68. * 函数功能                     : 串口通信中断函数
  69. * 输    入         : 无
  70. * 输    出         : 无
  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. }
复制代码

所有资料51hei提供下载:
二氧化碳传感器MH-Z19代码.7z (179.83 KB, 下载次数: 181)
MH-Z19红外二氧化碳传感器.pdf (375.11 KB, 下载次数: 95)



作者: 小八110    时间: 2019-4-28 13:39
请问有MH-19B传感器  51的代码吗,拜托
作者: troy8862    时间: 2019-5-23 21:19
小八110 发表于 2019-4-28 13:39
请问有MH-19B传感器  51的代码吗,拜托

有的,请问还需要吗?

作者: zyt心有所寄    时间: 2019-5-28 21:56
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

有需要
作者: zyt心有所寄    时间: 2019-5-28 21:57
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

有需要,楼主能发一份嘛?
作者: zyt心有所寄    时间: 2019-5-28 22:02
楼主能提供一份51单片机的代码嘛?谢谢
作者: troy8862    时间: 2019-6-30 20:35
51单片机的代码在我另一篇帖子里
作者: SJQUAN    时间: 2019-8-5 11:41
请问这段代码是已经将宏能实现了的是吧,我怎么拷贝过去,但功能实现不了


作者: se街口    时间: 2019-8-5 21:37
有需要。

作者: 思无邪33    时间: 2019-10-10 14:14
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

需要MH-Z19B 代码,怎么联系你。
作者: 皮皮虾皮    时间: 2019-10-19 16:41
请问MH-Z19接STM32的接口是用哪个?实验时候的连杜邦线MH-Z19四孔的那一端需要连接么

作者: woquzhangdada    时间: 2020-5-9 17:24
想问下根据这个代码的是怎么接线的啊
作者: persist-1    时间: 2020-7-5 17:34
请问可以求具体的电路连线吗
作者: 小小猪+    时间: 2020-10-30 22:16
楼主有CC2530单片机写co2的代码吗

作者: ahuwff    时间: 2020-11-7 11:20
你这里传感器和串口调试都接到串口1了吗?
作者: avanyway    时间: 2021-9-3 08:05
谢谢你,很好的资料




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1