找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7435|回复: 15
收起左侧

二氧化碳传感器MH-Z19/STM32代码(串口传输数据)

  [复制链接]
ID:306236 发表于 2019-4-11 16:22 | 显示全部楼层 |阅读模式
二氧化碳传感器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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:523582 发表于 2019-4-28 13:39 | 显示全部楼层
请问有MH-19B传感器  51的代码吗,拜托
回复

使用道具 举报

ID:306236 发表于 2019-5-23 21:19 | 显示全部楼层
小八110 发表于 2019-4-28 13:39
请问有MH-19B传感器  51的代码吗,拜托

有的,请问还需要吗?
回复

使用道具 举报

ID:115740 发表于 2019-5-28 21:56 | 显示全部楼层
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

有需要
回复

使用道具 举报

ID:115740 发表于 2019-5-28 21:57 | 显示全部楼层
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

有需要,楼主能发一份嘛?
回复

使用道具 举报

ID:115740 发表于 2019-5-28 22:02 | 显示全部楼层
楼主能提供一份51单片机的代码嘛?谢谢
回复

使用道具 举报

ID:306236 发表于 2019-6-30 20:35 | 显示全部楼层
51单片机的代码在我另一篇帖子里
回复

使用道具 举报

ID:420249 发表于 2019-8-5 11:41 | 显示全部楼层
请问这段代码是已经将宏能实现了的是吧,我怎么拷贝过去,但功能实现不了

回复

使用道具 举报

ID:477661 发表于 2019-8-5 21:37 | 显示全部楼层
有需要。
回复

使用道具 举报

ID:621610 发表于 2019-10-10 14:14 | 显示全部楼层
troy8862 发表于 2019-5-23 21:19
有的,请问还需要吗?

需要MH-Z19B 代码,怎么联系你。
回复

使用道具 举报

ID:579624 发表于 2019-10-19 16:41 | 显示全部楼层
请问MH-Z19接STM32的接口是用哪个?实验时候的连杜邦线MH-Z19四孔的那一端需要连接么
回复

使用道具 举报

ID:746230 发表于 2020-5-9 17:24 | 显示全部楼层
想问下根据这个代码的是怎么接线的啊
回复

使用道具 举报

ID:795701 发表于 2020-7-5 17:34 | 显示全部楼层
请问可以求具体的电路连线吗
回复

使用道具 举报

ID:836851 发表于 2020-10-30 22:16 | 显示全部楼层
楼主有CC2530单片机写co2的代码吗
回复

使用道具 举报

ID:840063 发表于 2020-11-7 11:20 | 显示全部楼层
你这里传感器和串口调试都接到串口1了吗?
回复

使用道具 举报

ID:88964 发表于 2021-9-3 08:05 | 显示全部楼层
谢谢你,很好的资料
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表