TI中文支持网
TI专业的中文技术问题搜集分享网站

求助!CC3100移植到自己MCU平台后死在establishConnectionWithAP()里读取同步字时的N2H_SYNC_PATTERN_MATCH(pBuf, g_pCB->TxSeqNum)。

用msp430f5529lp的getting_started_with_wlan_station例程移植到自己的MCU平台上

前面初始化配置到缺省状态都是正常的configureSimpleLinkToDefaultState();

但到establishConnectionWithAP()后就执行不过了,纠结了很多天了,终于查到卡死的地方,但不知道原因。

在host以spi模式t向cc3100发送读取的指令后再接收CC3100返回的数据,会判断while ( ! N2H_SYNC_PATTERN_MATCH(pBuf, g_pCB->TxSeqNum) ),看程序貌似这个变量在host每向cc3100作读的请求且成功接收后都会加一。而N2H_SYNC_PATTERN_MATCH(pBuf, g_pCB->TxSeqNum)其实就是比较g_pCB->TxSeqNum的后两位和CC3100返回的同步字的后两位是否一致,即0xABCDDCBx后的那个“x”可能是00,01,10,11。如果和g_pCB->TxSeqNum后两位不一致就会死在那里

事实上错误就是这样产生的,在configureSimpleLinkToDefaultState();结束后又重新sl_Start(0, 0, 0);此时g_pCB->TxSeqNum重新变为0x01,接着执行establishConnectionWithAP();函数。在执行一次读取操作后CC3100返回的同步字后两位应该是1才能和g_pCB->TxSeqNum匹配(我用CC31XXEMUBOOST配合VS模拟时其返回的是0xabdccdbd,最后两位是01,就匹配成功了)。但用自己的MCU的时候返回0xabdccdbc。从而导致错误。

请问这证明CC3100在sl_Start(0, 0, 0)中的一次通信后其同步字没有加一从而与g_pCB->TxSeqNum不匹配导致错误的吗?可是为什么呢,我尝试在sl_Start(0, 0, 0)和establishConnectionWithAP();之间加另外的通信函数,如加入 retVal = sl_WlanPolicySet(SL_POLICY_CONNECTION, SL_CONNECTION_POLICY(1, 0, 0, 0, 1), NULL, 0);但这些函数返回值的计算都是累加正常,即从bd到be到bf再返回到bc如此循环,但执行establishConnectionWithAP()时始终返回bc。

已经要被这个问题逼疯了,忘各位大神不吝赐教!跪谢!

Nutcracker:

Wi-Fi 相关软件问题请到 Wi-Fi 技术版面提问。

你用的 MCU 是哪一颗?

qiao luo:

回复 Nutcracker:

哦,谢谢,是瑞萨的RX631。

Sheng Zhao2:

回复 qiao luo:

求教如何将f5529的get_start_with_station工程移植到f6638上

qiao luo:

回复 Sheng Zhao2:

我移植就修改了下底层硬件驱动,像spi之类的,其他的文件都直接搬过去就可以了,可是我这不遇到问题了么,也不知道是不是哪儿改错或遗漏了。

Sheng Zhao2:

回复 qiao luo:

那你插脚问题是怎么解决的,就是f5529可以直接与cc3100相接,自己的MCU怎么与cc

3100接到一起呢

Ken Wang:

回复 Sheng Zhao2:

自己的板子和CC3100相连,注意几个管脚的链接:

1. nHIB,SPI或是SCI管脚(CTS,RTS), IRQ管脚。

具体可以参考原理图上面,具体的关机爱定义。

谢谢

Hao Chen9:

回复 Sheng Zhao2:

能不能相互交流下,我也遇见了你的这样的问题,大神,求教。邮箱3238245116@qq.com  万分感谢啊

赞(0)
未经允许不得转载:TI中文支持网 » 求助!CC3100移植到自己MCU平台后死在establishConnectionWithAP()里读取同步字时的N2H_SYNC_PATTERN_MATCH(pBuf, g_pCB->TxSeqNum)。
分享到: 更多 (0)