STM32串口获取氨气传感器数据

传感器:ZE03电化学模组 NH3 (0-100ppm)

同上篇关于STM32串口接收激光粉尘传感器的博文差不多,因为该传感器提供了串口输出数据,其他配置可以和粉尘传感器一样不变,主要修改串口中断函数即可

void USART2_IRQHandler(void)                    //串口2中断服务程序(氨气浓度测量)
    {
    u8 Res;
    static char i=0, start=0;
    if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //接收中断
        {

            Res =USART_ReceiveData(USART2); //读取接收到的数据

            if(Res == 0xFF) //如果接收的第一位数据是0XFF(这个是查看传感器的手册得知的)
            {
                USART_RX_STA = 0;     //让数组索引值从0开始
                start = 1;  //这个变量是来确定第二位是否接收到了0X86(查看手册)
            }

            if(start == 1)
            {
                USART_RX_BUF[USART_RX_STA] = Res ; //把接收到的数据存到数组里面
                USART_RX_STA++;
                if(USART_RX_STA >= 9 && (USART_RX_BUF[1]==0x86))
                    {
                        printf("氨气浓度:%d\n",USART_RX_BUF[2]*256+USART_RX_BUF[3]);
                        start  = 0;
                        USART_RX_STA=0;//重新开始接收   
                        USART_RX_BUF[0] = 0;
                    }
                }                   
        }
  } 
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值