MATLAB处理FPGA串口发送数据(从txt读取)
在FPGA设计过程中,有时需要使用MATLAB与FPGA开发板进行联合仿真,如果采用串口进行发送和接收,则需要对接收的每字节十六进制数据进行处理。
比如在本次设计中,需要将PC端串口助手接收到的所有十六进制数据进行拼接,并且转换为二进制,然后再将该二进制字符串与Matlab处理结果进行比对。其代码如下:
% 一个一个转换为二进制字符串,再进行拼接
fid = textread('F:\Matlab_Function\uart_rx.txt','%s'); % 读取txt文件中所有十六进制数据(每个数据以空格隔开,所以fid是元组数组)
bin_str = ''; % 空字符串,用于存储最终的二进制字符串
L = length(fid);
for i = 1:L
temp_1 = fid(i); % 依次从元组数组中读出十六进制数据
temp_2 = dec2bin(hex2dec(temp_1),8); % 十六进制数据转二进制,且显示宽度为8,高位补零
bin_str = strcat(bin_str,temp_2); % 对所有十六进制数据的二进制表示形式进行拼接
end
运行程序,对比十六进制数据与读入Matlab并且转换为二进制的数据,仿真通过,可以对该数据进行进一步处理。
以上仅为个人学习笔记,欢迎评论区友好探讨交流!