×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-05-20 发布时间:
|

传感器:ZE03电化学模组NH3NH3 (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 ",USART_RX_BUF[2]*256+USART_RX_BUF[3]);

                        start  = 0;

                        USART_RX_STA=0;//重新开始接收   

                        USART_RX_BUF[0] = 0;

                    }

                }                   

        }

  } 


关键字:STM32  串口  传感器数据 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义