主题中讨论的其他器件:MSP-EXP432E401Y
工具/软件:Code Composer Studio
您好!
我使用2个 MSP-EXP432E401Y 和2个 BOOSTXLCC-3135。 我正在进行 CAN 总线电缆更换。 为此、我使用了一个略微修改的"network_terminal"示例、其中添加了 CAN 功能。 我想在非阻塞模式下同时使用 CAN 和 TCP。 CAN 正在非阻塞模式下工作。 TCP 客户端设备也在非阻塞模式下工作。 TCP 服务器设备不是,但应启用非阻塞。 在我的代码中、我在"CAN_Read"和"SL_Recv"之间交替。 当接收数据时、它通过"sl_Send"或"CAN_write"发送数据(请参阅下面的代码)。 我检查了两个器件上的参数:
TCP 服务器设备:NB=1、newsock=1
TCP 客户端设备:NB=1、SOC=0
有什么想法,为什么 TCP 服务器处于阻塞模式?
这是来自 TCP 服务器的代码。 TCP 客户端代码与"SOCK_"相同、而不是"newSOCK_"。 其余代码基本上是原始的"network_terminal"。
while (1) { STATUS = CAN_READ (CAN、&CANRXFrame、sizeof (CANRXFrame)); if (status == 16) { while (status!= 8) { 状态= sl_Send (newsock、CANRXFrame.data、sizeof (CANRXFrame.data)、0); } } status = sl_Recv (newsock、CANTXFram.data、sizeof (CANTXFram.data)、0); if (status ==8) { while (status!= 16) { 状态= CAN_WRITE (CAN、CANTXFrame、sizeof (CANTXFrame)); } }
此致
Christoph