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给删了,瞬间所有的非系统命令都无法使用,使用就报错 当时就吓尿了,生产环境被我 ...
随机推荐
- 从清月高中物理动学课件制作工具说【FarseerPhysics引擎之WheelJoint】及【PropetryGrid之动态下拉列表】
最近在写一个简单的小工具,可以用来制作一些简单的运动学课件,这个工具主要是把物理引擎的设置可视化,主要包括利用纹理图片直接创建并设置物体.关节等方面.之前开发时主要使用BOX2D引擎和BOX2D.XN ...
- 【后台测试】Linux下小试jmeter
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5784288.html 前言 上一篇主要讲了在Window ...
- linux pptpd账号同时登录的问题
最近搞了个云主机搭建个VPN服务器给自己用, 特别是在公共场所的wifi上网时, 很多APP, 或者网站是没有https的, 所以为了保证信息(主要是账号密码)的安全, 搭个私有vpn还是很有必要的. ...
- tcp_tw_recycle 的问题, 使用某一个wifi,APP老是连接不上网络
ss -tan 反映出来的情况就是在服务器上抓包,发现有SYN包,但服务器就是不回ACK包,因为SYN包已经被丢弃了.为了验证这一结果,可以执行netstat -s | grep timestamp ...
- C# xml压缩包不解压的情况下解析xml内容
string sourceFilePath = @"E:\文件拷贝\xx\3773\3773.zip"; FileInfo fileInfo = new FileInfo(sour ...
- EXCEL导入导出自己整理的一些方法
//导入Excel代码 protected DataTable ExcelHelper(string filePaht) { string sFilePath2003 = Server.MapPath ...
- oracle分层查询中的start with和connect by(树结构查询)
来源: http://blog.csdn.net/itmyhome1990/article/details/16338637 ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表 ...
- 总结一下在ASP.NET中开发网站的一般步骤
1.打开Miscosoft Visual Studio2010 2.新建网页添加新项 3.设计网页 4.添加窗体控件 5.优化页面 6.调试网页
- android 消息机制
一.Android应用程序的主线程主要用于更新UI界面,并且主线程不能做耗时操作,否则会引起ANR:这种情况下需要开一个子线程来进行耗时操作,动作完成之后,子线程发消息给主线程通知其更新UI显示,常见 ...
- 编写高性能Web应用程序的10个技巧
这篇文章讨论了: ·一般ASP.NET性能的秘密 ·能提高ASP.NET表现的有用的技巧和窍门 ·在ASP.NET中使用数据库的建议 ·ASP.NET中的缓存和后台处理 使用ASP.NET编写一个We ...