我是靠谱客的博主 沉默冬瓜,最近开发中收集的这篇文章主要介绍NB模块开机、关机、重启的实现1 NB模块开机、关机、重启的流程分析2 NB模块开机、关机、重启的代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1 NB模块开机、关机、重启的流程分析
- 1.1 开机
- 1.2 关机
- 1.3 重启
- 2 NB模块开机、关机、重启的代码实现
1 NB模块开机、关机、重启的流程分析
首先看一下硬件连接图:
下面我们需要看一下硬件原理图中需要注意的点:
1.1 开机
NB模块开机时序图如下:
开机的流程图如下:
1.2 关机
NB模块关机时序图如下:
NB模块关机流程图如下:
1.3 重启
NB模块重启实现可以通过开机和关机两种操作就可以组合成重启。
流程图如下:
2 NB模块开机、关机、重启的代码实现
dev_sim7020.c:
#include "main.h"
#include "at_parse.h"
#include "app_debug.h"
#include "FreeRTOS.h"
#include "task.h"
#define AT_CMD_AT "AT"
#define AT_CMD_ATE0 "ATE0"
#define STATUS_IS_ON() (!HAL_GPIO_ReadPin(M_STA_GPIO_Port,M_STA_Pin))
#define STATUS_IS_OFF() (HAL_GPIO_ReadPin(M_STA_GPIO_Port,M_STA_Pin))
#define PWRKEY_HIGH() HAL_GPIO_WritePin(M_PWR_GPIO_Port,M_PWR_Pin,GPIO_PIN_RESET)
#define PWRKEY_LOW() HAL_GPIO_WritePin(M_PWR_GPIO_Port,M_PWR_Pin,GPIO_PIN_SET)
static bool sim7020_at_ok()
{
uint16_t err=0;
while (err<3)
{
err++;
if(at_send_wait_reply(AT_CMD_AT,true,"OK","ERROR",NULL,NULL,1000)==false)continue;
if(at_send_wait_reply(AT_CMD_ATE0,true,"OK","ERROR",NULL,NULL,1000)==false)continue;
return true;
}
return false;
}
bool sim7020_pwr_on()
{
uint16_t err=0;
DEBUG("sim7020 pwr on");
if(STATUS_IS_ON())return true;
while(err<3)
{
err++;
PWRKEY_HIGH();
vTaskDelay(200);
PWRKEY_LOW();
vTaskDelay(1000);
PWRKEY_HIGH();
vTaskDelay(500);
if(!STATUS_IS_ON())continue;
if(sim7020_at_ok()==false)continue;
return true;
}
return false;
}
bool sim7020_pwr_off()
{
uint16_t err=0;
DEBUG("sim7020 pwr off");
if(STATUS_IS_OFF())return true;
while(err<3)
{
err++;
PWRKEY_HIGH();
vTaskDelay(200);
PWRKEY_LOW();
vTaskDelay(1500);
PWRKEY_HIGH();
vTaskDelay(500);
if(!STATUS_IS_OFF())continue;
return true;
}
return false;
}
bool sim7020_reboot()
{
if(STATUS_IS_ON())
{
if(sim7020_pwr_off()==false)return false;
}
return sim7020_pwr_on();
}
bool sim7020_init()
{
DEBUG("sim7020 init");
if(at_parse_init()!=true)return false;
if(sim7020_reboot())
{
DEBUG("-------sim7020 reboot success------");
}
return true;
}
最后
以上就是沉默冬瓜为你收集整理的NB模块开机、关机、重启的实现1 NB模块开机、关机、重启的流程分析2 NB模块开机、关机、重启的代码实现的全部内容,希望文章能够帮你解决NB模块开机、关机、重启的实现1 NB模块开机、关机、重启的流程分析2 NB模块开机、关机、重启的代码实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复