📄 epcm2944uart.txt
字号:
%%
s = serial('COM1');%调用串口1
set(s,'BaudRate',38400,'InputBufferSize',733);%设置波特率和接受缓冲区
fopen(s);%打开串口
%%
fwrite(s,[2 0 2 0 48 1 49 24],'uint8');%传给雷达请求数据包
while(s.BytesAvailable<733) end%等待缓冲区满,代表收到完整数据包
out = fread(s,s.BytesAvailable,'uint8');%将缓冲区的内容读到out变量
for i=1:722
data(i)=out(i+8); %第9个字节开始是数据
end
for i=1:361
dataout(i)=bitand(data(2*i)*256+data(2*i-1),8191);%将两字节的数据转化为16位十进制数,同时取消最高三位,8191是1fff
%dataout(i)=data(2*i)*256+data(2*i-1);
end
theta=0:0.5/180*pi:pi;%声明一个角度
polar(theta,dataout)%画图
%%
fclose(s)%关闭串口
user code:
uart0init();配置波特率和接受缓冲区
uart0_sendbyte(0x02);以下八句为发送清酒数据指令,这样写能否识别?是否需要写成一句?
uart0_sendbyte(0x00);
uart0_sendbyte(0x02);
uart0_sendbyte(0x00);
uart0_sendbyte(0x30);
uart0_sendbyte(0x01);
uart0_sendbyte(0x31);
uart0_sendbyte(0x18);
while(uart0接受缓冲区<733);
for(i=1;i<=733;i++)
out[i]=接受缓冲区内容;
for(i=1;i<=722;i++)
data[i]=out[i+8]; %第9个字节开始是数据
for i=1:361
dataout(i)=bitand(data(2*i)*256+data(2*i-1),8191);%将两字节的数据转化为16位十进制,要注意雷达输出数据是高位在后,低位在前,data(1)是低位data(2)是高位,重组构造完之后,取消最高三位,8191是1fff(见telegram response B0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -