GPRS模块上电后复位会导致开机函数不正常的问题原因及解决方法


之前使用的开机函数
void Gprs_modem_start_up()
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);	//RESET 脚要置成高电平,防止重启
do
{ 
GPIO_SetBits(GPIOF,GPIO_Pin_11);//开机电平       (先拉高后拉低是因为模块上反相了,即当单片机f11引脚为高,sim800的pwk引脚为低。)
//线程延时3秒供开机使用
rt_thread_delay(150);
//先拉高电平,再拉低
GPIO_ResetBits(GPIOF,GPIO_Pin_11);
rt_thread_delay(50);
}while((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)) ==0x01);
}
这样导致的结果是按单片机的复位键并执行这段代码以后,sim800模块有时是开机状态,有时是关机状态,当时不解,但看了开关机时序图后明白了,是因为该函数虽然开机考虑了大于1s,但是没有考虑status引脚变化的延迟时间是大于4s,也就是说当我们开机以后,status可能并没有很快的反应出高电压,此时它仍然是低,所以该段程序又执行一遍拉高拉低的动作,使其关机了。
我将代码改为以下代码,复位后就总是能是sim800模块开机了。当关机时,拉低大于1s开机,当开机时,拉低大于3s,模块重启。
void Gprs_modem_start_up()
{
	GPIO_SetBits(GPIOB,GPIO_Pin_0);	//RESET 脚要置成高电平,防止重启
	do
	{                                                                                                   
			GPIO_SetBits(GPIOF,GPIO_Pin_11);//开机电平
			//线程延时3秒供开机使用
			rt_thread_delay(320);
			//先拉高电平,再拉低
			GPIO_ResetBits(GPIOF,GPIO_Pin_11);
		  rt_thread_delay(80);
  }while((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)) ==0x01);
}
GPRS模块上电后复位会导致开机函数不正常的问题原因及解决方法的更多相关文章
- AndroidStudio升级后出现Refresh gradle project和connection timed out的原因和解决方法
		笔者发现现在升级AndroidStudio不需要FQ了,于是在看到了升级提醒后手贱点击了升级.可悲剧的一幕发生了, 正在写的一个项目从上到下密密麻麻的错误,看了一下提示要求升级Gradle 那就升级吧 ... 
- SharePoint 2010升级到sharePoint 2013后,人员失去对网站的权限的原因及解决方法。The reason and solution for permission lost after the upgrading
		昨天碰到了一个问题,一个网站在从SharePoint 2010升级到SharePoint 2013后,人员都不能登录了,必须重加赋权,人员才能登录,这样非常麻烦. 原因:是认证方式的问题.在Share ... 
- 误删/tmp导致hadoop无法启停, jsp无法查看的解决方法
		问题描述 我的hadoop版本是hadoop-cdh4.2.0,由于误删了/tmp目录(不是hadoop.tmp.dir设定的那个目录),在Namenode,SecondaryNamenode和Dat ... 
- Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法
		使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 ActionContext c ... 
- mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享
		摘要: 今天对物理数据表,进行增加列操作后,程序一直显示无法找到相应列,通过仔细比对发现,视图中无相应列更新,下文将具体的解决方法分享如下: 例: create view vw_test as sel ... 
- ssh 免密码登录(设置后仍需输密码的原因及解决方法)
		按操作步骤操作不行的最可能原因是:文件权限,不论是a机还是要访问的b机的文件的权限都要改成对应的700,600:必须严格是这个权限,否则会出现设置免密fail的情况. serverA 免密码登录到 s ... 
- 安装xenapp后,非管理员连接RDP出现桌面当前不可用的解决方法
		安装完xenapp后,非管理员帐号就不能远程登录到2008服务器. 修改方法如下:1.启动 Citrix AppCenter展开citrix资源.Xenapp.<场地>.策略,右面的窗格切 ... 
- mysql导出csv文件excel打开后数字用科学计数法显示且低位变0的解决方法
		Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0. Excel打开csv文件时,只要字段值都是数字,它 ... 
- libc.so.6被删后导致系统无法使用的原因及解决方法
		记一次升级glibc库发生的错误 今天给glibc库升级,发生了一件让我吓出一声汗的事情,我把动态库中的libc.so.6给删了,瞬间所有的非系统命令都无法使用,使用就报错 当时就吓尿了,生产环境被我 ... 
随机推荐
- 小试牛刀3之JavaScript基础题
			JavaScript基础题 1.让用户输入两个数字,然后输出相加的结果. *prompt() 方法用于显示可提示用户进行输入的对话框. 语法: prompt(text,defaultText) 说明: ... 
- Fiddler- -Composer创建和发送HTTP Request
			Fiddler的功能还有很多, 很多功能都没有被挖掘出来.这次我们介绍Fiddler中的一个非常有用的功能Composer,是用来创建和发送HTTP Request的.Composer的使用方法很简单 ... 
- Hadoop学习笔记(一)从官网下载安装包
			Hadoop是一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.要学习Hadoop从下载安装包开始 打开 ... 
- awk 反过滤不想要的列 和循环列
			[root@elk_m ~]# awk '{print $0}' install.log.syslog |head -1 <86>Feb 29 02:58:28 groupadd[1598 ... 
- H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度
			最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ... 
- git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
			问题 在本地master提交了一个commit(8d85d4bca680a5dbcc3e5cfb3096d18cd510cc9f),如何提交的test_2分之上? 方法 使用cherry-pick 用 ... 
- JQuery html API支持解析执行Javascript脚本功能实现-代码分析
			JQuery html用法(功能类似innerHTML) 开发中需要使用Ajax技术来更新页面局部区域, 使用的方法是ajax获取html代码段(字符串),然后将这个html代码段作为参数,传入目标D ... 
- XML转java对象
			使用XStream来转换. XStream xStream = new XStream(); xStream.autodetectAnnotations(true); // xStream.alia ... 
- Android中悬浮窗口
			调用WindowManager,并设置WindowManager.LayoutParams的相关属性,通过WindowManager的addView方法创建View,这样产生出来的View根据Wind ... 
- 你值得拥有:25个Linux性能监控工具
			一.基于命令行的性能监控工具 1.dstat - 多类型资源统计工具 该命令整合了vmstat,iostat和ifstat三种命令.同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能 ... 
