update doc

This commit is contained in:
Neucrack
2018-10-09 16:29:40 +08:00
parent 5e68ceee91
commit ca67ce1d81
6 changed files with 96 additions and 3 deletions

View File

@@ -20,12 +20,91 @@ linux下使用的换行符是`LF(\n)`,windows下使用`CRLF(\r\n)`,
因此,windows上生成的lod文件会比linux上的lod文件大一点,但是不会对程序有任何影响
## 为什么没有IDE,没有想keil一样的IDE么?
没有提供IDE,提供单独的工具链(编译链接工具)和下载软件,
编写软件可以自由选择编辑器,
比如使用[VS Code](https://code.visualstudio.com/),支持跳转,对于没法跳转的可以使用全局搜索,速度很快很方便
![](../assets/vscode.png)
也可以[用eclipse开发](https://github.com/Ai-Thinker-Open/GPRS_C_SDK/issues/202)
## 为什么有时会无法下载程序到模块?
程序不要进入休眠模式,不要使用`while(1){};`代码,
以及串口的问题,
可以尝试:按复位键,模块启动后(下载串口的数据通信指示灯开始闪烁)立马点击下载按钮
## 不用TF卡,可以把数据存到内部flash中么?
SDK集成了文件系统,文件系统就是flash上的,所以对文件系统的操作就可以看成是对flash的操作,可以把配置文件存到文件系统中.
所以,不用TF卡也可以通过文件系统的API将数据存到flash文件系统中
## 支持那些网络? 2G基站关闭了怎么办?
模块使用RDA8955这款芯片,支持4频段:800/900/1800/1900MHz,
在国内建议使用移动卡,移动未宣布关闭2G基站,联通已经决定关闭2G基站
其它地区建议先进行测试
## 为什么有时候会重启?
重启一般是因为两个原因造成的
* 电源供电不足,导致断电重启
* 系统程序bug
很多情况下都是因为电源问题造成的, 蜂窝网要求电源设计为2A,如果达不到就可能会出现联网通信或打电话或者信号差的时候就会重启
如果使用C SDK编译debug版本的固件,死机后不会重启,会阻塞(除了手动设置了看门狗),如果是debug版本也重启了并且没有自己使用过看门狗功能,那一定是电源的问题
如果使用release版本或者添加了看门狗功能,有可能是程序出现了问题,一般是指针越界操作导致的
## 文档和代码不一致或者文档没有说明怎么办?
在开发中的代码可能文档更新不及时,尽量先看已有的文档,在api每个文档的开头都会有重要提示,如果不看可能会遇到坑,
工程的代码也尽量写得比较简单易懂,可以多看看demo下的例程和.h文件,
再不懂则可以提交issue或者论坛发问或者发邮件询问
## 如何获取IMEI?
可以使用SDK中的API获取,或者用手机扫描模块屏蔽壳的二维码即可得到
## 为什么总是提示SIM无法识别或者掉卡?
* 检查是否有SIM卡
* 检查SIM接触是否正常,触电不能有胶覆盖(比如有涂三防漆涂到了触电的例子)
* 检查SIM卡线路走线是否正规,尽量离模块近一点,周围不要有干扰,模块的天线引脚和SIM卡引脚相隔比较近,注意走线使其不相互影响
## 为什么低功耗时达不到说的2mA?
模块低功耗可以达到2mA的电流是没错的,8955通过降低主频以及关闭外设来降低功耗,
如果还有部分外设处在使用中的情况,电流可能不会降下来,以及在信号弱的地方为了保持网络连接,可能会有电流上升的情况
如果进入飞行模式,则GSM/GPRS协议栈关闭,也会大大降低电流,但是无法打电话发短信上网,其它功能正常使用
所以,要使用低功耗尽量关闭外设,保持信号良好
## 为什么GPS会漂,不是说好的定位精度5米么?
GPS在空旷的环境中可以有比较理想的效果,在有遮蔽的地方会对定位精度有影响
## 可以使用arduino开发么?
目前不可以,没有移植arduino库,有兴趣学习的可以自己尝试移植试试
## 为什么定时器的时间不是十分准确?
定时器是软件定时器,不是硬件定时器,不适用在高精度的定时任务上

View File

@@ -40,7 +40,7 @@ A9主要有GSM/GPRS2G)相关功能A9G除了GSM/GPRS还集成了定位芯
(二)**SDK片上开发**(SoC开发/SDK二次开发)
即不需要外接MCU直接写GPRS模组的固件对GPRS模组进行编程.
A9/A9G GPRS模块使用RDA8955作为主芯片,主频能达到312MHz,而且是双核,在内部一个核已经用来处理收发数据,另外一个核用来运行实时操作系统及协议栈,还有很多空余的资源可以使用,非常适合拿来进行二次开发,可以满足大多数应用需要,但是不建议跑实时性要求非常高的控制类应用
A9/A9G GPRS模块使用RDA8955作为主芯片,主频能达到312MHz,除了跑协议栈之外,还有很多空余的资源可以使用,非常适合拿来进行二次开发,可以满足大多数应用需要,但是不建议跑实时性要求非常高的控制类应用
* 这种方式的优点是不用再外接MCU直接对模组编程节约了硬件资源适合对硬件成本要求高的场景
* 本文就是使用这种方式详细介绍如何使用SDK进行开发并提供相关API说明

BIN
assets/vscode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

View File

@@ -1,9 +1,11 @@
功能及API
=====
可以根据自己的需求查找相关模块的使用方法
也可以在SDK [demo](https://github.com/Ai-Thinker-Open/GPRS_C_SDK/tree/master/demo)目录下找到更多例程,可以参考使用
SDK `demo`目录下有各个模块的例程,可以直接编译测试,可以参照例程使用
根据自己的需求查找相关模块的使用方法
<= 请展开左边的`功能及API`

View File

@@ -7,6 +7,7 @@ GPRS C SDK 开发环境搭建
* SDK没有特定的IDE用户自己选择代码编辑器编辑代码。
* 在修改代码时一定不能使用windows自带的记事本和写字板请使用更加专业的编辑器(推荐使用如[vscode](https://code.visualstudio.com/)[sublime](https://www.sublimetext.com/)[atom](https://atom.io/)[eclipse](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/oxygen2),source insight等或者其它你熟悉的编辑器。)
> 比如使用VS Code, 它支持函数跳转等基本功能(在vscode里面搜索C/C++插件安装),多使用搜索功能(侧边栏搜索图标)会很方便
* 请修改编辑器设置文件结尾符号设置为unix风格(`<LF>`(`\n`)结尾)(设置方法请自行到网络查找)

View File

@@ -51,5 +51,16 @@ GGSN(gateway GPRS Support Node)是GPRS网络中的关键部分是GPRS网络
4. 与公网设备建立连接因为设备已经建立好于公网的连接只需要直接通过某种协议连接即可比如建立TCP连接、UDP连接等
#### IMEI SN IMSI CCID区别
SN是模块序列号,一般情况可以不用理会
IMEI是设备号码,全球唯一,会发送到基站网络进行校验,在一些地区如果IMEI号码错误可能导致无法联网
IMSI International Mobile SubscriberIdentification Number 国际移动用户识别码是区别移动用户的标志储存在SIM卡中可用于区别移动用户的有效信息。其总长度不超过15位同样使用09的数字。其中MCC是移动用户所属国家代号占3位数字中国的MCC规定为460MNC是移动网号码最多由两位数字组成用于识别移动用户所归属的移动通信网MSIN是移动用户识别码用以识别某一移动通信网中的移动用户。例如开头是46000是中国移动用户46001是联通用户46003是电信用户
ICCIDIntegrate circuit card identity 集成电路卡识别码固化在手机SIM卡中),ICCID为IC卡的唯一识别号码共有20位数字组成