各位FPGA大侠都用什么方法在PC端读写串口呢
时间:10-02
整理:3721RD
点击:
我最近成功地在Xilinx ML605 开发板上写了一个UART verilog 模块。连接到PC的COM2口。
用串口助手SCommTest 来发送数据,然后再观察会送数据,结果正确。
但是,我需要用PC里的程序自动地向串口发送一堆数据,然后从串口收回计算结果,再由PC中的程序来分析出图。
我从网上东拼西凑写了一个matlab程序,对于收发读写,可以正确完成,但是速度竟然比SCommTest慢得多得多。不知道是自己写错了还是用错方法了,请大侠们给出个主意啊
一下就是我的matlab代码:
用串口助手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
我在用tcl,
好高端啊:)
请问能提供一些简单例子,和操作吗?PC这边的数据处理怎么解决呢(感觉还是matlab或者C比较直观)
试试labview
用secure CRT呗,挺好用的。
小编的Verilog代码呢?
你好,请问TCL怎么用的呢?求指导
