完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛
|
本帖最后由 3guoyangyang7 于 2016-5-5 04:21 编辑 一、前言 1、资料说明 ti提供的网络编程资料小狂收集到了三篇,分别在小狂提供的资料的如下目录 ①网络说明文档 cc3200开发文档网络部分说明Internet on chip ②OTA库文档 cc3200开发文档库文件CC3200 Simplelink OTA Extlib API User's Guide ③网络接口文档 cc3200开发文档库文件simplelink_api 2、概念 正式开讲之前,先介绍几个概念,有主意我们接下来的说明。 AP(Access Point):无线接入点,这个概念特别广,在这里,用大白话说,你可以把CC3200当做一个无线路由器,这个路由器的特点不能插入网线,没有接入Internet,只能等待其他设备的链接,并且智能接入一个设备。类似于点对点模式啦。 STA(Station):任何一个接入无线AP的设备都可以称为一个站点。大白话说也就是平时接入路由器的设备,哈哈。 SSID(Service Set Identifier):SSID,每个无线AP都应该有一个标示用于用户识别,SSID就是这个用于用户识别的的名字,也就是我们经常说到的wifi名。 BSSID:每一个网络设备都有其用于识别的物理地址,这个东西呢就叫MAC地址,这个东西一般情况下出厂会有一个默认值,可更改,也有其固定的命名格式,也是设备识别的标识符。这个BSSID呢是针对设备说的,对于STA的设备来说,拿到AP接入点的MAC地址就是这个BSSID。 RSSI:这个理解起来更简单,就是通过STA扫描到AP站点的信号强度。 3、概念图 1、TI提供的Wlan_Station,示意图盗用一下
解释一下,其实这个图很简单明了,就是CC3200接入到一个能连入网络的无线路由器中,然后用CC3200通过路由ping到TI的官网,所以说TI的Wlan_Station 就做了这些事情。只是做的过程中,准备工作复杂了点而已。 2、网络状态机 这个图是摘自CC3200 应用指南这本书,感觉挺有用,就画了一遍,所以,状态机的模式,看着很清晰,我感觉就不做过多的解释了,哈哈。
二、Wlan_Station 小狂自认为没有那么大的能力,所以也写不出完全独立的Wlan_Station的程序,我就不拿我的程序出来献丑了(基本参考TI的历程),就直接拿TI的官方历程直接分析了。另外TI官方历程是基于OS的,当然也可以不依赖OS,小狂没有做测试,也不好说,所以,咱就分析基于OS的。 1、流程分析
2、工程导入 2.1 导入的工程 ①ti_rtos_config:TI RTOS 配置工程库 ②oslib:因为TI的工程能同时支持TI rtos和Free RTOS,所以又在此基础上写了一个通用的os库,我个人感觉有些东西好用,有些东西不好用,到时候再说 ③simplelink:网络连接库,想要使用CC3200的网络必须包含这个库,别无他法,至少我现在没有发现其他的方式。 ④Wlan_station:这个就是我们要调试的程序主题。 ⑤Driverlib:这个是GPIO和串口用的库(在这个工程里)。 2.2导入过程 导入过程上一贴已经讲过了,所以就不多讲了,主要注意的是 ①②③的导入不要copy,④的导入copy就行。看图
导入完成,如下图所示
2.3编译工程 编译的顺序一定要严格按照下边的顺序,因为每个库之间是有相互依赖关系的,不按照套路编译,就会出错 1、编译ti_rtos_config 右击ti_rtos_config选择Propertise
选择最新的编译器
按照图中选择,然后编译,没有报错和警告证明编译完成 2、编译oslib 同样右击点击Propertise,选择最近的编译器,如果不是最新的应该会给警告,但是没有问题。
然后编译,如果没有警告和错误,证明编译完成 3、编译simplelink
同样的编译没有错误,就算编译完成 4、编译driverlib
同样设置完成后编译,如果没有错误就算编译完成 5、编译wlan_station
如果没有出现任何错误,就证明编译完成, 3、修改参数 下边我们就让cc3200的设备连接到相应的网络上 修改参数
SECURITY_KEY:是你要连接的无线AP的名称 SECURITY_TYPE:要连接的无线AP的加密方式 SSID_NAME:要连接的AP的名称 把这几个参数重新修改一下,然后重新编译一下,没有出现错误就把程序下载到板子里
打开串口助手
执行程序
如果出现如图所示的状态的话,证明程序运行正常
1是你连接的AP名称也就是SSID,2是你连接的AP的MAC,也就是BSSID,3就是CC3200得到的IP地址,4是接入AP的网关地址,出现5则证明Ping网关和www.ti.com都成功,证明本机可以接入外网。 三、代码分析 我们就根据流程图来分析代码 1、板子初始化 板子初始化通过BoardInit();这个函数来的。 主要做了三件事,一件事强制化初始函数,PRCMCC3200MCUInit();这个不需要解释,强制性的,必须加上。因为我们这个工程用了RTOS,每个RTOS都需要一个心脏定时器,所以,就初始化了芯片中断,和系统定时器中断。PRCMCC3200MCUInit() 初始化芯片中断,MAP_IntEnable(FAULT_SYSTICK) 初始化定时器中断。 2、调试LED,和UART串口初始化 2.1 PinMuxConfig()
1是开启GPIOA1定时器时钟,和UART0的时钟,玩过cotex-M系列的童鞋都应该有这些体验,为了省电一般电源都是用什么开什么。2是串口UART复用,3是输出IO复用,这些都是用pinmux产生的。Pinmux的使用很简单,直接勾选就可以了。 2.2 InitTerm() 初始化串口调试台,里边的代码,到时候讲串口的时候再分析。现在就知道这么玩就可以实现就行了。 3、VStartSimpleLinkSpawnTask() 这个建立simplelink的一个调度的任务,具体的作用就是用来simplink切换的时候调用的,比如,从STA切换到AP会调用,从AP切换到STA也会调用,其他有关simplink的功能就不知道了,有知道具体作用的可以告知小狂,小狂特别感谢。 4、建立网络初始化任务 通过osi_TaskCreate来完成,这个就是tios建立一个任务的形式,也先不需要了解,讲到TIOS的时候会好好讲的,咱先进入WlanStationMode函数看看,不逐个解释了,太麻烦,就直接代码加注释了
下边的是初始化网络函数的代码加注释
基本上到这里,代码就算完事了,但是这个讲的应该不够自己,所以各位看官有什么不懂的可以直接问小狂,在下一篇里,会分析网络连接的回调函数,又是一个大长帖,希望大家看的不累啊,哈哈,小狂写的都累,没有办法,还是那句话,只有能帮助小白一切都值,另外写的匆忙,并没有时间校验,所以有什么问题可以直接提出来,小狂验证后会直接修改,谢谢大家,喜欢的点赞,支持。 其他跟着小狂玩CC3200系列请移步如下连接 |
|
相关推荐
16 个讨论
|
|
|
不错,挺好的,有板子我也来玩玩
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
quake702 发表于 2016-8-19 13:18 有什么不懂得可以一起讨论,嘿嘿,qq 838239071 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:53 , Processed in 1.108528 second(s), Total 96, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
24336