Other Parts Discussed in Thread: CC3200SDK
Thread 中讨论的其他器件:CC3200SDK
工具/软件:Code Composer Studio
您好!
SDK:CC3200SDK_1.5.0
我使用 UDP_Socket 项目它看起来存在未知延迟(大约16ms)、 基于此项目、只修改 了以下部分:
int BsdUdpServer (unsigned short usPort)
{
SlSockAddrIn_t sAddr;
SlSockAddrIn_t sLocalAddr;
内部 iCounter;
内部 iAddrSize;
内部 iSockID;
内部 iStatus;
长 lLoopCount = 0;
短整型 sTestBufLen;
INT 计数= 0;
//填充缓冲区
for (iCounter=0;iCounter "istatus="%d\r\n",iStatus);" uart_print("0");="" delay_us(900);="" if(istatus="">0)
{
UART_PRINT ("111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111iStatus =%d\r\n、iStatus);
}
}
UART_PRINT ("成功接收到%u 数据包\n\r"、g_ulPacketCount);
//接收1000个数据包后关闭套接字
sl_close (iSockID);
返回成功;
}
/
// 主要功能
//*********
void main()
{
long lRetVal =-1;
//
//电路板初始化
//
BoardInit();
//
// UDMA 初始化
//
UDMAInit();
//
//为所使用的外设配置 pinmux 设置
//
PinMuxConfig();
//
//配置 UART
//
InitTerm();
//
//显示横幅
//
DisplayBanner (application_name);
InitializeAppVariables();
//
//以下函数通过清除将器件配置为默认状态
// NVMEM 中存储的持久设置(即连接配置文件&
//策略、电源策略等)
//
//如果开发人员确定,应用程序可以选择跳过此步骤
//设备在开始应用时处于所需状态
//
//请注意,在上完成的所有配置文件和持久设置
//设备将丢失
//
lRetVal = ConfigureSimpleLinkToDefaultState();
if (lRetVal < 0)
{
if (device_no_in_station)== lRetVal)
UART_PRINT ("未能将器件配置为其默认状态\n\r");
loop_forever ();
}
UART_PRINT ("设备已配置为默认状态\n\r");
//
//摘要是设备已配置为工作站模式
//且处于默认状态
//
lRetVal = sl_Start (0、0、0);
if (lRetVal < 0 || lRetVal!= Role_STA)
{
UART_PRINT ("启动设备失败\n\r");
loop_forever ();
}
UART_PRINT ("设备作为工作站启动\n\r\n);
UART_PRINT ("正在连接到 AP:%s ...\r\n"、SSID_NAME);
//
//连接到 WLAN AP
//
lRetVal = WlanConnect();
if (lRetVal < 0)
{
UART_PRINT ("无法建立与 AP \n\r\n 的连接);
loop_forever ();
}
UART_PRINT ("已连接到 AP:%s \n\r"、SSID_NAME);
UART_PRINT ("设备 IP:%d.%d.%d.%d.%d\n\r\n",
SL_IPV4_BYTE (g_ulIpAddr、3)、
SL_IPV4_BYTE (g_ulIpAddr、2)、
SL_IPV4_BYTE (g_ulIpAddr、1)、
SL_IPV4_BYTE (g_ulIpAddr、0));
lRetVal = BsdUdpServer (port_NUM);
if (lRetVal < 0)
{
ERR_PRINT (lRetVal);
loop_forever ();
}
//#ifdef USER_INPUT_ENABLE
// lRetVal = userInput ();
// if (lRetVal < 0)
//{
// ERR_PRINT (lRetVal);
// loop_forever ();
//}
//
//#else
// lRetVal = BsdUdpClient (port_NUM);
// if (lRetVal < 0)
//{
// ERR_PRINT (lRetVal);
// loop_forever ();
//}
//
lRetVal = BsdUdpServer (port_NUM);
// if (lRetVal < 0)
//{
// ERR_PRINT (lRetVal);
// loop_forever ();
//}
//#endif
UART_PRINT ("正在退出应用程序...\n\n");
//
//关闭网络处理器
//
lRetVal = sl_Stop (sl_stop_timeout);
while (1)
{
_slNonOsMainLoopTask();
}
}
//*********
如果我在代码中添加延迟表示"delay_us (900)"、则未知的延迟时间将消失。如果不是、将显示为"关于"
16ms 延迟时间、如下图。为什么?您可以在这里提供帮助?
逻辑分析仪记录 串行端口输出波形的 TX 引脚 :



