CC3200 在使用文件读写时,当WIFI没有连接成功的时候会一直处于_SlNonOsMainLoopTask中
时间:10-02
整理:3721RD
点击:
板子已经通过smartLink配置成功
// // Device connect ap // deviceConnectWlan(); DeviceDefaultConfig(); while (1) { _SlNonOsMainLoopTask(); }
如果我先连接WIFI ,在进行读写文件,就没问题;
DeviceDefaultConfig(); // // Device connect ap // deviceConnectWlan();
如果我先读写文件, 在调用fs_open之后,就会一直处于_SlNonOsMainLoopTask函数中;
void main() { // // Board Initialization // BoardInit(); // // Initialize the uDMA // UDMAInit(); // // Configure the pinmux settings for the peripherals exercised // PinMuxConfig(); // // Configuring UART // InitTerm(); // // Display banner // DisplayBanner(APPLICATION_NAME); DeviceDefaultConfig(); // // Device connect ap // //deviceConnectWlan(); while (1) { _SlNonOsMainLoopTask(); } } //***************************************************************************** // // Close the Doxygen group. //! @} // //***************************************************************************** int deviceConnectWlan( void ) { long lRetVal = -1; InitializeAppVariables(); //lRetVal = ConfigureSimpleLinkToDefaultState(); if(lRetVal < 0) { if (DEVICE_NOT_IN_STATION_MODE == lRetVal) UART_PRINT("Failed to configure the device in its default state \n\r"); // ASSERT_ON_ERROR(DEVICE_DEFAULT_ERROR); } UART_PRINT("Device is configured in default state \n\r"); lRetVal = sl_Start(0, 0, 0); if (lRetVal < 0) { UART_PRINT("Failed to start the device \n\r"); ASSERT_ON_ERROR(DEVICE_START_ERROR); } UART_PRINT("Device started as STATION \n\r"); UART_PRINT("Connecting to AP: %s ...\r\n",SSID_NAME); //lRetVal = WlanConnect(); if(lRetVal < 0) { UART_PRINT("Connection to AP failed \n\r"); ASSERT_ON_ERROR(DEVICE_CONNECT_ERROR); } // Wait for WLAN Event while((!IS_CONNECTED(g_ulStatus)) || (!IS_IP_ACQUIRED(g_ulStatus))) { _SlNonOsMainLoopTask(); } UART_PRINT("Connected to AP: %s \n\r",SSID_NAME); UART_PRINT("Device IP: %d.%d.%d.%d\n\r\n\r", SL_IPV4_BYTE(g_ulIpAddr,3), SL_IPV4_BYTE(g_ulIpAddr,2), SL_IPV4_BYTE(g_ulIpAddr,1), SL_IPV4_BYTE(g_ulIpAddr,0)); return SUCCESS; } long DeviceDefaultConfig( void ) { long lRetVal = -1; // // create a user file // lRetVal = sl_FsOpen((unsigned char *)USER_FILE_NAME, FS_MODE_OPEN_CREATE(65536, \ _FS_FILE_OPEN_FLAG_COMMIT|_FS_FILE_PUBLIC_WRITE), NULL, lFileHandle); if(lRetVal < 0) { // // File may already be created // lRetVal = sl_FsClose(*lFileHandle, 0, 0, 0); ASSERT_ON_ERROR(lRetVal); } else { // // close the user file // lRetVal = sl_FsClose(*lFileHandle, 0, 0, 0); if (SL_RET_CODE_OK != lRetVal) { ASSERT_ON_ERROR(FILE_CLOSE_ERROR); } } Report("Cread file success.\r\n"); lRetVal = sl_FsOpen((unsigned char *)USER_FILE_NAME, FS_MODE_OPEN_READ, NULL, lFileHandle); if(lRetVal < 0) { lRetVal = sl_FsClose(*lFileHandle, 0, 0, 0); ASSERT_ON_ERROR(FILE_OPEN_WRITE_FAILED); } Report("open read is success.\r\n"); return SUCCESS; }
代码如下:
文件系统是通过NWP进行读写的,在文件读写之前需要将Sl_Start()开启后才能正常操作文件系统