資源簡介
MATLAB與DSP進行UDP通信的簡單程序,相當于一個網口調試助手,可以實時接收DSP發送的報文并進行解析。
代碼片段和文件信息
clc;
clear?all;
close?all;
fclose(instrfindall);%先關閉之前可能存在的UDP,第一次運行時需要注釋掉,否則會報錯,后面運行要一直打開。
%這里是我定義的指令,每個指令由多個字節構成,字節間按空格分開
%?fid1?=?fopen(‘zhiling1.txt‘‘r‘);%1個包
%?for?i?=?1:5
%?????for?j?=?1:1
%?????data1{ij}?=?fscanf(fid1‘%s‘[11]);%以字符方式讀取每個值,遇空格完成每個值的讀取
%?????end
%?end
%?zhiling1?=?(hex2dec(data1)).‘;
%?fid2?=?fopen(‘zhiling2.txt‘‘r‘);%1個包
%?for?i?=?1:148
%?????for?j?=?1:1
%?????data2{ij}?=?fscanf(fid2‘%s‘[11]);%以字符方式讀取每個值,遇空格完成每個值的讀取
%?????end
%?end
%?zhiling2?=?(hex2dec(data2)).‘;
%127.0.0.1即為本地
%u1表示自己的電腦,u2表示對端電腦,u1設置的通信IP地址為對端(u2)的IP,u2設置的通信IP地址為對端(u1)的IP。
u1=udp(‘192.168.2.200‘‘RemotePort‘7000‘LocalPort‘7000);%udp(對端IP,對端端口號,本地端口號)
%u1的本機端口為8848,即監聽所有發到8848端口的消息;
%u1的遠程端口為8847,即若u1發送消息,則發送到8847端口,本機端口為8847的UDP便會受到u1的消息
u2=udp(‘192.168.2.100‘‘RemotePort‘7000‘LocalPort‘7000);%同上
%?u3=udp(‘127.0.0.1‘‘RemotePort‘8848‘LocalPort‘8850);%同上
set(u1‘ByteOrder‘‘littleEndian‘);%與dsp通信,需要設置大小端
set(u2‘ByteOrder‘‘littleEndian‘);
u1.OutputBufferSize=8192;%設置接收和發送的報文長度,不設置的話,可能會置為512字節,接收不完整
u1.InputBufferSize=8192;%默認512字
- 上一篇:內點法最優潮流MATLAB算法
- 下一篇:xPC target
評論
共有 條評論