This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/CC3220SF-LAUNCHXL:cc3220sf

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/770824/compiler-cc3220sf-launchxl-cc3220sf

器件型号:CC3220SF-LAUNCHXL

工具/软件:TI C/C++编译器

我将器件配置为 AP - 首先配置 WiFiMode_ConfigureSimpleLinkToDefaultState、然后配置 为 WiFiMode_ConfigureSimplelinkToAPState

我在 PC 上看到 AP 并成功连接到它,但我得到事件 SimpleLinkFatalErrorEventHandler slFatalErrorEvent->ID = 2;

建议

谢谢

typedef 结构{
S8 SSID[REGISTER_SYSTEM_WIFI_SSID_SIZE * sizeof (Modbus_Register_DEF_t)];   "WiFiCoordinator"
S8密码[REGISTER_SYSTEM_WIFI_PASSWORD_SIZE * sizeof (Modbus_Register_DEF_t)];"1234567890"
U16端口;                       3000
}Registers_System_WiFi_AP_t;

/*********
*函数名称:WiFiMachine_ConfigureSimpleLinkToDefaultState *
*说明:*
(三 /
静态结果_e WiFiMode_ConfigureSimpleLinkToDefaultState (void){
U8 mPower = 0;
S32 MMode =-1;
u32 mIfBitmap = 0;
SlWlanScanParamCommand_t mScanDefault ={0};
SlWlanRxFilterOperationCommandBuff_t mRxFilterIdMask ={0};

WiFiStatus_ClrGlobalStatus();

MMode = sl_Start( NULL、NULL、NULL );
if (MMode < 0) return (RES_FAIL);
if (MMode!= Role_STA){
if (MMode == role_AP){

U16 mSTAInfoLen = 0;
U16 mStartSTAIndex = 0;
U8 I = 0;
SlNetCfgStaInfo_t mConnectedSTAList[4];

while (WiFiStatus_GetGlobalStatus (wif_status_ip_acquired)== false) Task_sleep( 1);

mSTAInfoLen = sizeof (mConnectedSTAList);
if (sl_NetCfgGet (sl_netcfg_AP_STATIONS_INFO_LIST、&mStartSTAIndex、&mSTAInfoLen、(U8 *) mConnectedSTAList)< 0) Util_Reset ();

for (i = 0;i <(mSTAInfoLen / sizeof (SlNetCfgStaInfo_t));i++){
sl_NetCfgSet (sl_netcfg_AP_STATE_DISCONNECT、1、sl_MAC_ADDR_LEN、(const uint8_t *)&(mConnectedSTAList[i].macaddr));

if (sl_WlanSetMode (Role_STA)<0) return (RES_FAIL);
if (sl_Stop (sl_stop_timeout)<0) return (RES_FAIL);

MMode = sl_Start( NULL、NULL、NULL );
if (MMode < 0) return (RES_FAIL);
if (MMode!= Role_STA) return (RES_FAIL);

//1000
if (sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0、0)、 null,0)<0) return (RES_FAIL);
//if (sl_WlanProvisioning (sl_WLAN_PROVISIONING_CMD_STOP、0xFF、0、NULL、0x0)< 0) return (RES_FAIL);
if (sl_WlanProfileDel (0xFF)<0) return (RES_FAIL);

WiFiStatus_SetGlobalStatus ( WIFI_STATUS_Connected,true );

if (!sl_WlanDisconnect ()){
while (WiFiStatus_GetGlobalStatus (wif_status_connected)== true) Task_sleep( 10 );

else WiFiStatus_SetGlobalStatus( WIFI_STATUS_Connected,false );

if (sl_NetCfgSet (sl_netcfg_IPv4_STA_ADDR_MODE、sl_netcfg_ADDR_DHCP、0)< 0) return (RES_FAIL);
if (sl_NetCfgSet (sl_netcfg_if、sl_netcfg_if_State、sizeof (U32)、(const U8 *)&mIfBitmap)< 0) return (RES_FAIL);

mScanDefault.ChannelsMask = channel_mask_all;
mScanDefault.RssiThershold = RSSI_TH_MAX;

if (sl_WlanSet (sl_WLAN_CFG_General_Param_ID、sl_WLAN_General_Param_opt_scan_Params、
sizeof (slWlanScanParamCommand_t),(U8 *)&mScanDefault)<0) return (RES_FAIL);
if (sl_WlanPolicySet (sl_WLAN_policy_scan、sl_WLAN_SCAN_policy (0、0)、NULL、0)< 0) return (RES_FAIL);
if (sl_WlanSet (sl_WLAN_CFG_General_Param_ID、sl_WLAN_General_Param_opt_STA_TX_POWER、1、(U8 *)&mPower)< 0) return (RES_FAIL);
if (sl_WlanPolicySet (sl_WLAN_policy_PM、sl_WLAN_normal_policy、NULL、0)< 0) return (RES_FAIL);
if (sl_NetAppMDNSUnRegisterService (0、0、0)<0) return (RES_FAIL);

memset( mRxFilterIdMask.FilterBitmap,0xFF,8);

if (sl_WlanSet (sl_WLAN_RX_FILTERS_ID、sl_WLAN_RX_FILTER_REMOVE、
sizeof (slWlanRxFilterOperationCommandBuff_t),(U8 *)&mRxFilterIdMask)< 0) return (RES_FAIL);

if (sl_Stop (0xFF)<0) return (RES_FAIL);

MMode = sl_Start( NULL、NULL、NULL );
if (MMode < 0) return (RES_FAIL);
if (MMode!= Role_STA) return (RES_FAIL);

return (RES_SUCCESS);

/*********
*函数名称:WiFiMode_ConfigureSimplelinkToAPState *
*说明:*
(三 /
静态结果_e WiFiMode_ConfigureSimplelinkToAPState (Registers_System_WiFi_AP_t *模式){
U16 mIfBitmap = 0;
//U8 mSTALLIT=1;
U8 mSecType = SL_WLAN_SEC_TYPE_WPA_WPA2;
S32 MMode =-1;

WiFiStatus_ClrGlobalStatus();
ModbusDataBase_Block ( true );

if (sl_WlanSetMode( Role_AP )<0) return (RES_FAIL);
if (sl_Stop (sl_stop_timeout)<0) return (RES_FAIL);

MMode = sl_Start( NULL、NULL、NULL );
if (MMode < 0) return (RES_FAIL);
if (MMode!= Role_AP) return (RES_FAIL);

ModbusDataBase_Block (false);

while (WiFiStatus_GetGlobalStatus (wif_status_ip_acquired)== false) Task_sleep( 10 );

//if (sl_NetCfgSet (sl_netcfg_IPv4_STA_ADDR_MODE、sl_netcfg_ADDR_DHCP、0、0)< 0) return (RES_FAIL);
//if (sl_NetCfgSet (sl_netcfg_if、sl_netcfg_if_State、sizeof (U32)、(U8 *)&mIfBitmap)< 0) return (RES_FAIL);
//if (sl_WlanSet (sl_WLAN_CFG_AP_ID、sl_WLAN_AP_OPT_MAX_STATIONS、sizeof (U8)、(U8 *)(&mSTACLIMIT))< 0) return (RES_FAIL);
if (sl_WlanSet (sl_WLAN_CFG_AP_ID、sl_WLAN_AP_OP_SSID、strlen (pmode->SSID)、(U8 *) pmode->SSID)<0) return (RES_FAIL);
if (sl_WlanSet (sl_WLAN_CFG_AP_ID、sl_WLAN_AP_OPT_SECURITY_TYPE、1、&mSecType)< 0) return (RES_FAIL);
if (sl_WlanSet (sl_WLAN_CFG_AP_ID、sl_WLAN_AP_OPT_PASSWORD、strlen (pmode->Password)、(U8 *) pmode->Password)< 0) return (RES_FAIL);

ModbusDataBase_Block( true );
if (sl_Stop (0xFF)<0) return (RES_FAIL);

WiFiStatus_ClrGlobalStatus();

MMode = sl_Start( NULL、NULL、NULL );
if (MMode < 0) return (RES_FAIL);
if (MMode!= Role_AP) return (RES_FAIL);

ModbusDataBase_Block (false);

while (WiFiStatus_GetGlobalStatus (wif_status_ip_acquired)== false) Task_sleep( 10 );

return (RES_SUCCESS);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您的事件的含义是 sl_device_event_fatal 驱动程序_abort。 您的所有 SL_ API 是否都成功执行? 这意味着未返回错误代码。 您使用什么 SDK 和 ServicePack?

    未来请通过"插入代码、附加文件等..."插入代码 和 Syntax荧 光笔。 它可以让您的代码更好地读取。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我使用 API 版本 simplelink_cc32xx_sdk_1_50_00_06
    所有 API 返回成功结果。
    我在我的 PC 上看到"WiFiModem" SSID 并成功连接到它、但我没有收到 STA 连接的事件。
    我看到我在 AP 配置 sl_device_event_fature_driver_abort 事件之后得到。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是否已上传 SDK 1.50附带的 ServicePack?

    很难说出您的案例中可能出现的问题。 我希望您的代码中会出现一些系统问题、只有通过调试整个代码才能确定这些问题。 您应该开始将代码分解成多个部分、然后尝试找出您的案例中发生的情况。 我在您的代码中看不到任何明显的错误。 作为第一步、您应该考虑更新到最新的 SDK 和 ServicePack。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我更新到最后一个 SDK 后发现同样的问题。

    在哪里可以找到 AP 和 STA 的专用示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您可以在 SDK (\examples\子目录)和 Resource Explorer 中的 SimpleLink Academy ( dev.ti.com/.../ )找到所有可用示例。

    我建议查看 network_terminal 示例。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    network_terminal 示例构造所有 API,但未显示配置 AP 或 STA 的步骤?
    或一组要配置的函数...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、它演示了几乎所有 SL_ API 以及正确使用的方法。

    如果错误代码未从 SL_ API 返回、我认为您的问题与器件配置无关。 您在使用这些 API 时遇到一些系统问题、或者与 RTOS 或其他相关的问题。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的
    谢谢、我将检查并更新您
    谢谢你