GPRS模块SIM900A怎么用

使用起来其实很简单。

第一步是插一张2G电话卡,推荐用移动的,其他的也没试过。这个电话卡在某宝上面能直接买到,且详情里面说了可以给GPRS用。模块的插卡槽打不开也许不是设计问题,仔细看看结构就能打开了。

第二步是连接USB-TTL模块,为的是用电脑的串口助手给GPRS模块发送AT指令码,连接的注意事项见小文章:GPRS模块SIM900A为什么连接USB-TTL没反应_天下0325的博客-优快云博客

第三步是在电脑的串口助手中设置波特率,不同厂家的也许不是一样的,我的是9600。然后给GPRS模块发送AT指令码如:点击发送就可以,然后GPRS模块会返回信息,如果没有返回信息就是出错误了,发送的AT指令码有很多,可以看手册了解,电脑用串口可以给GPRS模块发送信息,单片机自然也可以,也就是说,利用单片机给GPRS模块发送AT指令码,也能使模块实现这些操作。其中重要的指令码有:

(下面AT开头的为指令码,注释为指令码的作用,图片解释了该指令码,指令码下面的一行为返回的信息)

// See if the SIM900 is ready

AT

OK

// SIM card inserted and unlocked?

AT+CPIN?

+CPIN: READY

OK

// Is the SIM card registered?

AT+CREG?

网络注册信息

+CREG: 0,5

OK

// Is GPRS attached?

AT+CGATT?

+CGATT: 1

OK

// Check signal strength - should be 9 or higher

AT+CSQ

+CSQ: 20,0

OK

// Set connection type to GPRS

AT+SAPBR=3,1,“Contype”,“GPRS”

OK

// Set the APN - this will depend on your network/service provider

AT+SAPBR=3,1,“APN”,“CMNET”

OK

// Enable GPRS - this will take a moment or two

AT+SAPBR=1,1

OK

// Check to see if connection is correct and get your IP address

AT+SAPBR=2,1

+SAPBR: 1,1,“10.79.223.61”

OK

/

AT+CIPSTART=“TCP”,“183.230.40.33”,“80”

OK

CONNECT OK

/

AT+CIPSEND

ATK-SIM900A模块介绍: ATK-SIM900A模块是 ALIENTEK推出的一款高性能工业级 GSM/GPRS模块 (开发板),接口丰富,功能完善,尤其适用于需要语言、短信、GPRS数据服务的各种领域。 ATK-SIM900A模块支持RS232串口和 LVTTL串口,并带硬件流控制。支持 5V~24V的超宽工作范围,使得本模块可以非常方便与您产品进行连接,从而给产品提供包括语音、短信和GPRS数据传输等功能。 SIM900A模块资料如截图: SIM900A模块原理图截图: SIM900A模块资料汇总截图: SIM900A模块资料具体说明: 模块原理图:模块原理图和封装库 程序源码:此目录包含所有正点原子STM32源码,分库函数和寄存器两个版本,请使用与开发板对应的源码即可。 配套软件:包括CH340 USB串口驱动,串口调试助手,汉字Unicode互换工具等开发过程中常用软件 SIM900A模块资料:SIM900A模块自身的一些官方资料 芯片数据手册:模块使用到的芯片的数据手册 SD根目录文件:使用正点原子STM32开发板发送中文短信需要把这个文件夹下面内容复制到SD根目录 其他参考资料:一些网络资料 DF文件: TK-SIM900A GSM(GPRS)模块用户手册_V1.1.pdf 这个文档非常重要,是模块介绍 ATK-SIM900A模块使用说明_ANxx.pdf 这个文档有几个版本,对应不同开发板。 ATK-SIM900(A)模块DTMF解码功能_AN1415.pdf:DTMF解码功能说明文档 ATK-SIM900(A)模块彩信功能_AN1414.pdf:彩信功能说明文档 ATK-SIM900(A)模块升级说明_AN1413.pdf :模块升级说明文档 ATK-SIM900A GSM模块常见问题汇总_20140805.pdf:这个文档是模块使用过程中常见问题解答。
### 使用 STM32SIM900A 模块进行电话拨打 #### 准备工作 为了使STM32能够控制SIM900A拨打电话,需先完成硬件连接以及软件初始化设置。确保已按照标准方法完成了两者之间的物理连线,特别是确认RXD和TXD线路正确无误地对应连接到了指定的GPIO引脚上[^4]。 #### 初始化配置 在程序启动阶段,应该对串口参数做适当调整以匹配SIM900A的要求,默认情况下推荐使用的波特率为9600bps。此外还需要向SIM900A发送AT指令来设定其进入命令模式并允许自动应答功能: ```c // 配置USART为异步模式,停止位1,8数据位,无校验 void USART_Config(void){ // ...省略具体寄存器操作... } char ATCommand[]="ATE1\r\n"; // 打开回显 char SetAutoAnswer[]="ATS0=1\r\n"; // 设置自动接听 HAL_UART_Transmit(&huart2,(uint8_t*)ATCommand,strlen(ATCommand),0xFFFF); HAL_UART_Transmit(&huart2,(uint8_t*)SetAutoAnswer,strlen(SetAutoAnswer),0xFFFF); ``` #### 实现呼叫发起 当一切准备就绪之后,就可以编写函数用于触发实际的通话请求了。这里给出一段简单的例子展示怎样构建相应的字符串并通过串行端口传递给SIM900A执行: ```c void CallPhone(char *PhoneNumber){ char CommandBuffer[50]; sprintf(CommandBuffer,"ATD%s;\r\n", PhoneNumber); HAL_UART_Transmit(&huart2,(uint8_t *)CommandBuffer,strlen(CommandBuffer),0xFFFF); } ``` 上述代码片段中`CallPhone()`接受一个指向目标号码字符数组指针作为输入参数,在内部构造出完整的AT指令格式后调用库函数负责传输至外设设备。注意这里的分号`;`表示立即拨号而不是等待DTMF音结束再继续处理其他任务[^1]。 #### 结束通话 同样重要的是提供一种机制让用户可以终止正在进行中的对话过程。这通常涉及到发送另一个特定形式的AT命令告诉SIM900A挂断当前连接: ```c void HangUp(){ char EndCallCmd[]="ATH\r\n"; HAL_UART_Transmit(&huart2,(uint8_t *)EndCallCmd,strlen(EndCallCmd),0xFFFF); } ``` 以上就是利用STM32配合SIM900A实现基本语音服务的主要步骤概述。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值