项目总结——NB-IOT烟感报警器

一、概述

         最近做了一个烟雾报警的项目,其中碰到一些问题,总结起来


二、项目介绍

        项目主要包含stm8L151G6单片机,烟感检测,红外检测,蜂鸣器,LED,NB-IOT模块,烟感检测采用红外对管,红外对管并不是直接对射,而是通过烟雾漫反射来检测。这个项目主要在于低功耗。


三、问题汇总

        1、唤醒问题

            为了实现功耗,单片机采用RTC唤醒,在设置这个RTC寄存器的时候碰到幻想不了的问题,最后发现是有个寄存器设置顺序的问题。如下

        T_S32 DRIVER_RTC_Open(T_VOID)
{
    memset(&g_RtcCtl, 0, sizeof(g_RtcCtl));
g_RtcCtl.u32WakeInt = RTC_DEFAULT_WAKE_INT;
    
///*
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16); //32768/16  = 2048
    RTC_SetWakeUpCounter(2048 * g_RtcCtl.u32WakeInt); //这个要放在开中断前
//*/
  
    /*
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
CLK_RTCClockConfig(CLK_RTCCLKSource_HSE, CLK_RTCCLKDiv_64); //250000
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16); //250000/16  = 15625
RTC_SetWakeUpCounter(15625);
*/
  
RTC_ITConfig(RTC_IT_WUT, ENABLE);
RTC_WakeUpCmd(ENABLE);

return RET_SUCCESS;
}

        2、stm8 串口在唤醒后乱码

            我主频本来是采用HSE的,但是在唤醒后,本来好的串口发送有问题。后来我把主频改成HSI就好了,这里具体什么原因还没分析清楚,后面再来看

        3、NB-IOT模块

            我们采用的m5310 的NB-IOT模块,模块在入网之后的电流还是挺小的只有3ua

        4、串口

            进入休眠时可以采取将串口置成输入口来降低功耗

        5、报警
            在蜂鸣器报警的时候,电流可能很大,这时候可能会影响通信芯片 的稳定性,所以看需要在通信模块电源旁边加上一个大点的电容
        6、入网
            对通信来说,一般都会存在入不了网的情况,所以需要一个比较合理的入网及检查过程来判断网络情况。
    

猜你喜欢

转载自blog.csdn.net/cheng401733277/article/details/80657613