- GetSerialData.cpp
- stdafx.h
Files you will need:
To compile the code, change to the directory (in MATLAB) with GetSerialData.cpp.
Type the command:
mex GetSerialData.cpp
MATLAB may ask you to set up a compiler. Choose the MATLAB compiler (It is
usually one of the first options and has the word MATLAB somewhere in its path).After doing this, repeat the 'mex' command on the code. Note: This code will only work
with Windows (only been tested on XP).
Compiling the C code produces a .dll file. The file at this stage is similar to a .m file in that it adds custom functionality to MATLAB. To use the file, place it in thedirectory where you will use the GetSerialData function.
Using getserialdata with the dsp
GetSerialData should work with both the assembly and C implementations of outputting data to the serial port. Sometimes a DSP will not output any serial port data. Oftentimes this means this feature is broken on the DSP, but occasionally you can get the serial port to output data if you halt your program, press the red button a couple of times, flip the switch twice,and reload your program. To test the port for incoming data, load up the program 'Hyperterm' (StartMenu:Accessories:Communications:Hyperterm). Connect to com2 with data rate 38400 and lookfor ascii characters. It is suggested that you test for data first with the terminal and not MATLAB because if there is no data coming into MATLAB, it will stall until the function times out.
Once the DSP is running code that outputs data to the serial port, it continuously sends
the data. GetSerialData simply 'captures' the output from the buffer and records it to a MATLAB row vector
of specified size. The calling format is:
y = GetSerialData('port', baud, size);
- 'port' is the serial port to which the DSP is connected. For our use it will be 'com2'. The port name must be entered in quotes.
- baud is the speed at which we transfer data. For the DSPs in lab we use 38400.
- size is the length of the row vector you want to acquire.
- y is the output vector.
GetSerialData('help');
This will bring up a help screen with the full set of options.