Giter Site home page Giter Site logo

ittchmh / gprs_c_sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ai-thinker-open/gprs_c_sdk

0.0 1.0 0.0 5.49 MB

Ai-Thinker A9/A9G GPRS (with GPS(A9G)) module C development SDK

License: MIT License

Makefile 19.54% C 54.21% Shell 3.29% C++ 5.10% Objective-C 1.71% Perl 16.15%

gprs_c_sdk's Introduction

Ai-Thinker GPRS development SDK written by C

安信可GPRS模组二次开发SDK C语言版

English Version

(一) 硬件

  • A9 GPRS 模块

    特征:

    • 32位内核,主频高达312MHz,4k指令缓存,4k数据缓存
    • 多达29个GPIO(两个GPIO作为下载口)
    • 实时时钟、闹钟
    • 1个USB1.1接口
    • 2个带流控的UART接口(+1个下载调试串口)
    • 2个SPI接口
    • 3个I2C接口
    • 1个SDMMC控制器(接口)
    • 2个10位ADC接口
    • 32Mb(4MB) SPI NOR Flash
    • 32Mb(4MB) DDR PSRAM
    • 8kHz、13Bits/sample ADC mic
    • 48kHz、16bits/sample DAC Audio
    • 电源管理单元:锂电池充电管理、集成DC-DC及LDOs、可变化的IO电压
    • 18.8 x 19.2 mm SMD封装
    • 四频GSM/GPRS(800/900/1800/1900MHz)
    • 语音通话
    • 短信服务
  • A9G GPRS+GPS+BDS模块

    特征:

    • A9所有特征
    • 集成GPS+BDS(和串口2连接)
  • A9/A9G GPRS(+GPS+BDS) 开发板

    A9/A9G开发板,方便开发和调试 特征:

    • 1个A9G模块(A9和A9G采用相同封装,引脚相同,所以开发板通用)
    • 引出模块29个GPIO(包括2个下载调试引脚(HST_TX,HST_RX
    • 1个SIM卡(Micro卡)卡槽(Nano卡<Micro卡<标准卡)
    • 1个TF卡卡槽
    • 1个GPRS IPEX1代座子
    • 1个GPS IPEX1代座子
    • 一个USB接口
    • 5v-4.2V DC-DC,故可以5v供电或者3.8~4.2V供电
    • 1个加速度计LIS3DHx芯片
    • 1个开机按键,1个复位按键
    • 2个连接到GPIO的LED灯
    • 1个麦克风

注意图中的所有引脚名均为A9/A9G内主芯片的引脚,A9G内部串口2已经和GPS连接,即开启GPS后RX脚会输出GPS输出的原始信息

  • USB转串口模块

    需要注意的是,开发板上的USB接口不是USB转串口功能,而是USB1.1功能, 所以,为了下载和调试,需要一个USB转串口模块接板子上的HST_TXHST_RX引脚

  • 锂电池
    用来给模块供电,或者使用5V电源也行,USB转串口模块直接供电也行,要保证有足够的电流供应

(二) 开发环境搭建

  • 参见开发环境搭建文档

  • 也可以参考视频教程:点击查看视频

  • 注意 在修改编译环境的文件或者是代码时,一定不能使用windows自带的记事本和写字板,请使用更加专业的编辑器(推荐使用vscode,也可以使用sublime,或者atomeclipse或者其它你熟悉的编辑器。) 同时,请修改编辑器设置,文件结尾符号设置为unix风格(<LF>(\n)结尾)(设置方法请自行到网络查找) 同时,如果你是使用git进行克隆,请设置git在pull时不将<LF>转换为<CR><LF>,设置方法参考这里

  • 如果已经搭建好了,使用build.sh脚本来编译工程,打开cygwin进入到工程目录,有以下参数:

    • 使用 ./build.sh $PROJ来编译你的应用模块,如 ./build.sh app 则是编译app目录下的源码
    • 使用 ./build.sh demo $PROJ 来编译demo目录下的特定例程
    • 使用 ./build.sh clean $PROJ 清除$PROJ目录的中间文件
    • 使用 ./build.sh clean all 清除所有中间文件
    • 使用 ./build.sh demo $PROJ release 来生成release版本,比如./build.sh demo gpio release, 如果最后一个参数不是release,则默认是debug版本, debug版本在死机后会停止运行并可以使用GDB调试,而release版本在死机时会自动重启系统,所以实际投入使用时请使用release版本,测试时使用debug版本
  • 如果遇到问题,请仔细对比文档或者视频,看操作是否有错,也可以在issue里找有没有先例

(三) 下载、调试

如何使用下载调试工具:参见下载、调试文档

需要下载到开发板的文件:编译后hex目录下有*_B*.lod以及*_flash.lod两个文件,第一次下载需要下载第一个文件(较大的文件),后面只需要下载*_flash.lod文件即可

如果遇到问题,参见文档中的常见问题,也可以在issue里找有没有先例

(四) SDK

SDK特征

  • 提供易用的API,只要有C语言开发基础就可以快速使用
  • 集成大量功能,包括基本的GPIO、UART、SPI、IIC、ADC、OS、FS... ... 以及GPRS联网(socket、dns)、MQTT、短信、电话等

获得SDK

代码托管在github

  • 方法一:从github下载最新发布的压缩包

    这种方式获取的代码的发布的版本 需要注意的是:使用页面右上角的绿色Clone or download按钮下载会得到不包含SDK-LIB的压缩包,不建议使用

  • 方法二:使用如下命令克隆工程到本地(需先安装git注意克隆时需要加--recursive参数,不然获得的SDK文件不全)。

    这种方式可以保证是最新的代码

git clone https://github.com/Ai-Thinker-Open/GPRS_C_SDK.git --recursive

SDK目录结构:

目录 描述
app 程序主目录,应用代码放在这里
build 编译生成的目录、中间文件
demo 一些例程
doc 一些SDK相关的文档,Markdown格式,可在github在线阅读
hex 最后产生的可烧录文件
include SDK文件目录
init 系统初始化的目录,可以不用理会,不建议改动

使用SDK开发应用

当做好基本准备后,就可以开始码代码了

SDK的demo目录下有许多例程,有什么需要参照例程写就好了

如果没有接触过GPRS,或者发现看不懂代码,或者对代码有疑问,请务必先仔细通看这个文档 GPRS及SDK从零开始。。

(五) 反馈

(六) 参与开发

fork -> 修改 -> 提交PR

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.