|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我最近成功地在Xilinx ML605 开发板上写了一个UART verilog 模块。连接到PC的COM2口。
用串口助手SCommTest 来发送数据,然后再观察会送数据,结果正确。
但是,我需要用PC里的程序自动地向串口发送一堆数据,然后从串口收回计算结果,再由PC中的程序来分析出图。
我从网上东拼西凑写了一个matlab程序,对于收发读写,可以正确完成,但是速度竟然比SCommTest慢得多得多。。。不知道是自己写错了还是用错方法了,请大侠们给出个主意啊
一下就是我的matlab代码:
- clear all;
- close all;
-
- s = serial('COM2'); %assigns the object s to serial port
-
- set(s, 'InputBufferSize', 1024); %number of bytes in inout buffer
- set(s, 'FlowControl', 'hardware');
- set(s, 'BaudRate', 115200);
- set(s, 'Parity', 'none');
- set(s, 'DataBits', 8);
- set(s, 'StopBit', 1);
- set(s, 'Timeout',200);
-
- disp(get(s,'Name'));
- prop(1)=(get(s,'BaudRate'));
- prop(2)=(get(s,'DataBits'));
- prop(3)=(get(s, 'StopBit'));
- prop(4)=(get(s, 'InputBufferSize'));
-
- disp(['Port Setup Done!!',num2str(prop)]);
-
- fopen(s); %opens the serial port
- t=1;
- disp('Running');
- %% Specify hex codes to be transmitted
- txdata = ['E8']; %;'E8';'C3';'00';'B2';'F9';'76'
- %Convert to decimal format
- txdata_dec = hex2dec(txdata);
- %Write using the UINT8 data format
- fwrite(s,txdata_dec,'uint8');
- %Read back data in decimal format
- rxdata_dec = fread(s);
- % Convert data back to hexadecimal format
- rxdata = dec2hex(rxdata_dec)
- fclose(s)
- delete(s)
- clear s
复制代码 |
|