tag 标签: at

相关博文
  • 热度 16
    2015-10-6 22:29
    3017 次阅读|
    3 个评论
    硬件平台:正点原子 ATK-SIM900A GSM/GPRS 模块开发板 软件平台: PC 端串口调试工具 网络调试工具 测试目的:测试开发板 GPRS 功能、熟悉 AT 指令   1. 设置网络 因为我这里是通过路由器上网,所以要先进行一些设置。 先查看自己本机 IP ,这里是 192.168.1.103 ,如图 1. 图 1 通过自己的路由器,查看本机对外的 IP ,如图 2. 图 2 路由器的设置里面有一项“转发规则”,如图 3 ,选择“ DMZ 主机”。 图 3 在“ DMZ 主机”中,启动 DMZ 主机状态,将 DMZ 主机 IP 设置为前面查到的 192.168.1.103 ,然后保存,如图 4. 图 4 这样就把本机的 IP 映射到外网上,就可以从外网直接访问自己的电脑。 2. 打开网络调试工具,选择协议类型为“ TCP Server ”,本地端口号可以设置为“ 8000 ”,点击连接,如图 5 所示。 图 5 3. 发送 AT 指令进行 GPRS 测试 在连接好硬件后,可以先发送 ATE0 指令关掉回显。 1 ) AT+CGCLASS=”B” 设置 GPRS 移动台类型为 B. 收到回复 OK ,表示设置成功。 2 ) AT+CGDCONT=1,”IP”,”CMNET” 定义 PDP 上下文,设置 PDP 上下文标志为 1 , IP 协议,接入点为 CMNET. 收到 OK ,表示成功。 3 ) AT+CGATT=1 附着 GPRS 收到 OK ,表示成功。 4 ) AT+CIPCSGP=1,”CMNET” 设置 GPRS 连接,接入点为 CMNET. 收到 OK ,表示成功。 5 ) AT+CLPORT=”TCP”,”2000” 设置本地 TCP 端口为 2000. 收到 OK ,表示成功。 6 ) AT+CIPSTART=”TCP”,”112.87.243.40”,”8000” 启动连接到 PC , IP 和端口为前文所述。 等待一会儿,收到 CONNECT OK ,这时,表明开发板已经通过 GPRS 与 PC 建立连接。如图 6 所示。 图 6 7 )在串口工具中通过下面的指令发送数据 首先发送 AT+CIPSEND 这时收到回复 发送一组字符(不发送新行): Hello SIM900A! 然后,以 16 进制方式发送 1A ,即发送 0x1A 收到回复 SEND OK ,表示发送成功,如图 7 所示。 图 7 这时网络调试工具收到刚发送那串字符,如图 8 , 【Receive from 117.136.19.111 : 30549】这是由网络调试工具自动加上的信息,表示开发板上SIM900A模块的IP为117.136.19.111,端口为30549. 图 8 这时通过网络调试工具发送一串字符 Hello EDNChina 接着在串口调试工具端可以收到这组字符,如图 9 所示。 图 9 最后关闭 TCP 连接,先发送 AT+CIPCLOSE=1 ,再发送 AT+CIPSHUT ,如图 10 所示。 图 10
  • 热度 19
    2013-7-12 16:11
    1745 次阅读|
    2 个评论
    工作以来一直有记录自己技术感悟的习惯,我用有道云笔记的,现在贴出来供大家批评指正,如有人看过之后有了些许帮助,在下荣幸之至。   开始调试就遇到了烧程序时: Flash地址:0x000000处,校验错误   “问题的根源在于我用的CV版本太老,向导是按照tiny13来生成的,但是我的芯片是tiny13A,刚才从笔记本上下了个仅次于最新版本的CV,里面既有tiny13又有tiny13A,我生成的hex文件通过AVR_fighter写入直接报错"Flash地址:0x000000处,校验错误"(因为fighter没有tiny13A这个型号).换成智峰的软件选择tiny13a就正常了。”   http://www.amobbs.com/thread-4770907-1-1.html   从阿莫论坛找个帖子果然是那个原因,   但是有出现了这个问题: 校验内存中eeprom内容为空!   上面的问题都不复存在了,原因:问题在于AVR_fighter烧录软件的问题,有BUG,换成progisp.exe就好了 。   关于ADC:配置好了各个寄存器就行,注意一点: ADCL和ADCH必须都进行一次读寄存器才可以进行下一次转换。   关于PWM:T/C 寄存器- TCNT0  是需要赋值并且自增的寄存器,输出比较寄存器A - OCR0A和 输出比较寄存器B - OCR0B  是只需要赋值等待TCNT0的变化来被比较的数值寄存器,   举例:TCCR0A=0x83; //COM01 COM00:1 0 比较匹配发生时OC0A 清零,计数到TOP 时OC0A 置位,例如:当TCNT0 = 69;  OCR0A=70;时候,每次TCNT0都从69开始计数并且OC0A输出“1”,增加到70与OCR0A相等了所以OC0A输出“0”然后一直保持到TCNT0计数到“255”然后溢出、进入中断,中断函数就一条:给TCNT0置位TCNT0 = 69;(可以看出第一次执行的时候TCNT0值是未知的,所以第一个周期应该不准确,只有一个周期应该可以忽略)   所以总的来说就是:TCNT0从置位的值自增到OCR0A的过程输出“1”,自增到255的过程输出“0”,溢出、置位在从置位的值自增到OCR0A的过程输出“1”。。。。。循环   关于PWM的周期:大周期上是靠P62页的公式决定的,然而变换TCNT0的值也会影响周期(因为每个周期都是从TCNT0的置位的值增加到255,所以TCNT0越小周期越大)   完。2013年4月2日19:05:58
相关资源