微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC3200 LaunchPad 获取网络时间例程(get_time)简单运行解析

CC3200 LaunchPad 获取网络时间例程(get_time)简单运行解析

时间:10-02 整理:3721RD 点击:
参加了EEworld的活动,购买了CC3200 LaunchPad一枚。
首先感谢SOSO姐,感谢EEworld 举办这么好的活动,让广大坛友受益。

收到板子后,首先就是跑了下官方例程,也就是那个用手机连接板子发出的wifi并控制LED灯开关的例程,感觉还挺不错的。
接下来,就是下载了CC3200SDK软件、CCS软件、CCS UniFlash软件。
学习了下CC3200SDK中的doc文件夹下的文档,都是关于CC3200 LaunchPad的介绍,以及还有每个例程的源代码和对应的pdf介绍文档,也就是详细介绍每个例程的说明书,介绍程序的功能以及运行过程。

我首先调试了【blinky】例程,也就是那个跑马灯的例程,相信大家都会试下这个最简单的例子吧。
简单说来就是,打开CCS导入官方例程,总共有几十个【注意:这里最好选择勾选copy projects into workspace,也就是把官方例程拷贝一份到工作空间,这样以后自己修改例程时可以随便改,不但心改坏了没备份的】




导入后,大家会发现每个工程都有个叹号,这个叹号其实不影响调试,但看着不爽,其实是调试器版本不对造成的(不影响)



我们在任意一个工程上右键选择属性,把编译器版本调整一下(调为TI v15.12.1.LTS),然后在编译下叹号据不见了。



调试后,我们的工程文件夹(就是我们工作空间里拷贝的目录)里面的Release文件里就有xx.bin的程序文件。

如果我们只是在线调试(也就是在RAM中运行下),不用下载,直接CCS的debug就可以了。
但是这种,程序没有下载,掉电就没用了。

所以我们需要用CCS UniFlash软件通过串口把xx.bin文件下载到Flash中(这个Flash其实是CC3200连接的串行Flash,CC3200本身是没有Flash的,也就是不能存储程序,这点其实我也不理解,一般的MCU都是有Flash加RAM,在线调试仿真时,程序就已经下载到MCU的Flash中了,掉电仍然能运行,比如MSP430,CC3200为何去掉Flash了呢,这样还需要另外的下载步骤,有点麻烦。)

具体的烧录步骤,可以参考
pan.baidu.com/s/1hqiWB56 《一起来学cc3200》一起学CC3200之开发环境简介(2)烧录程序
首先的首先,需要找个跳帽把LaunchPad的 SOP J15接线柱的2号短接,也就是100状态,这个是程序烧写状态。
再设置好接口,再format,然后再选择xx.bin文件目录,最后再烧录就可以了。
【如果,上述步骤有问题,失败,尝试下(第一次使用uniFlash焼写CC3200代码的话,需要先update Service Pack firmware具体可参考这个帖子)http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/82255.aspx】




点击上图的Service Pack Programing,然后打开servicepack_1.0.1.6-2.6.0.5.bin这个文件,然后烧录就可以了。
servicepack_1.0.1.6-2.6.0.5.bin在下图中的链接的最下面一个软件包【CC3200SDK-SERVICEPACK:】里有



烧写完毕后,记得把上面说的跳线拔掉,让状态变成000,再按下复位就可以运行你刚才烧写的程序了。

-----------------------------------------------------------------------------------------------------------------------------------------

上面啰嗦了很多,还没说到本文的主题,也就是获取网络时间。主要是前面所说步骤虽然简单,但自己也是屡屡遇挫,最后才搞定这一切。

回到【get_time】这一工程中来。我们首先要好好读下
CC3200SDK_1.2.0\cc3200-sdk\docs\examples 这个文件夹下的CC32xx Info Center Get Time Application.pdf
这个pdf说的很详细了。

程序的运行步骤就是
【我们用随便一个串口助手,打开串口,串口号是LaunchPad的串口号,波特率是115200,8位,N,1。按下复位,程序默认会连接cc3200demo这个没有密码的wifi,如果没连上红灯闪烁,连上后红灯常亮,然后通过串口发送网络时间】
【我们可以用安卓手机的移动网络共享功能开启一个不要密码的wifi热点cc3200demo】

具体步骤是:首先打开手机流量关闭wifi然后按下图设置;



编译【get_time】这个工程,然后debug程序,程序在RAM中运行。然后打开串口【一定要先管串口再debug再开串口】

或者,编译后,插上跳帽,用uniFlash把get_time.bin下载,然后拔掉跳帽,打开串口,再按下复位,程序就运行了。

例如:




你可能看到了我这个图片中的wifi名字也就是AP名字不是cc3200demo【默认是cc3200demo】
这是我后面修改了的结果,下面再细说。

---------------------------------------------------------------------------------------------------------------------------------
上面说的是默认的例程。复位后LaunchPad会连接cc3200demo这个没有密码的wifi。
上面说过可以用安卓机弄出一个cc3200demo的wifi。
但是能不能简单点,连我们路由器的wifi呢,肯定是可以的。

如下图。


按照图中的方式,打开“common.h“这个文件。



#define SSID_NAME "TP-LINK_0708 " /* AP SSID */
#define SECURITY_TYPE SL_SEC_TYPE_OPEN /* Security type (OPEN or WEP or WPA*/
#define SECURITY_KEY "12345678" /* Password of the secured AP */
#define SSID_LEN_MAX 32
#define BSSID_LEN_MAX 6

修改三个参数就可以了:1、wifi名称 2、wifi密码类型 3、wifi密码

wifi密码类型可以看你路由器的密码类型,一般都是WPA2 。
SL_SEC_TYPE_OPEN 不需要密码
SL_SEC_TYPE_WEP WEP
SL_SEC_TYPE_WPA WPA
SL_SEC_TYPE_WPA_WPA2 WPA2

修改好上面的参数后,我们的LaunchPad就可以直接连接路由器并返回网络时间了。
-------------------------------------------------------------------------------------------------------------------------------------------




我们看上图,LaunchPad获取的时间是 星期天 8月1号 17:10:16 2016年

而电脑的时间是 2016年7月31日 19:40 有几个小时的差别

难道是哪里不对?后面才发现是时区的问题,改成北京时区就行了。(修改main.c文件中GMT_DIFF_TIME_HRS 和GMT_DIFF_TIME_MINS两个参数)



设置后,再编译、下载运行。然后就完美了。



本文到这里就完结了。
需要注意的是,每次通过debug在线调试或者通过uniflash下载运行时,必须先用串口软件关闭串口,下载后再开串口。

另外,写这个帖子我花了三个小时,比我调试程序花的时间还多,因为把话说清楚并不是一件简单的事。
也希望坛友们把自己的调试经验发上来,大家一起分享,一起进步。
最后放一张工作图,谢谢大家。


大家有什么问题,可以在下面跟帖,最好配以问题的截图,这样方便了解问题出在哪。
我会定期来看看,就我能解答的给出建议。

终于碰到大牛了,感激涕零,大牛别客气,有例程教程尽管发出来,我很快会跟上的

大牛不敢当,我只是拿别人现成的东西跑一下,再加上自己的一些改进而已,大家共同学习!

您谦虚了,您玩microPython吗,我不会编译CC3200那程序,希望有大牛能把编译好的程序发出来

没听说过microPython,你下载个CCS就可以编译了,编译好的bin程序在CC3200SDK里面就有

配的例子不好,校对给的NTP地址经常被墙,我换了国内清北的NTP才稳定许多。另外,不知道是哪边出问题,估计是访问查询的频率太高,经常会断掉

我就用默认的NTP,没出现被连不上的情况,可能是你所处网络环境的原因吧。
掉线可能是程序自身的机制,具体我也不是很清楚,因为串口显示都是MCU主动断开连接的。

使用的CC3200 SimpleLink Wi-Fi and IoT Solution WithMCU LaunchPad Getting Started Guide按这个文档做的怎么卡在这里了

这是图,说是编译器的版本有问题,不知道怎么弄了

你看下下面那段英文,意思是说,版本不对,一般高版本的CCS可以打开低版本的,低版本的就不能打开高版本的,这个很好理解吧?

你去TI网站下载个最新版CCS软件,目前已经是 V 6.1.3 6.1.3.00034 Jul 2, 2016

http://processors.wiki.ti.com/index.php/Download_CCS
这里下载

大哥。。。你这最后一张图的月份不还是不对么,,,

日期相差一天,目前还没找到原因。。。时区按说没弄错。

哈哈,话说对CC3200的MQTT库了不了解

还没有跑过这个例程,不过网上有详细的步骤
http://www.docin.com/p-1317886043.html

仔细看完,非常好,学习中

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top