如何在FPGA上将传感器采集到的数据通过串口发送?

我使用DHT11进行了温湿度数据的采集然后准备通过蓝牙将这个数据发送到手机上面去。·我的温度采集模块经过测试已经没有问题,UART的设置也通过了。我现在打算将DHT11收集到的数据发送到串口中。我尝试过在顶层文件中直接将DHT11中寄存文件的datatemp 里面的数值直接发到TXD中,结果在手机上面还是收不到任何信息

下面是我添加到TOP文件里面的程序

always@(posedge sys_clk or negedge sys_rst_n)begin
if (!sys_rst_n)

tx_data <= 1'b1;
else if (tx_flag)
case(tx_cnt)

 4'd0: tx_data <= 1'b0;
 4'd1: tx_data <= data_temp[0];
 4'd2: tx_data <= data_temp[1];
 4'd3: tx_data <= data_temp[2];
 4'd4: tx_data <= data_temp[3];
 4'd5: tx_data <= data_temp[4];
 4'd6: tx_data <= data_temp[5];
 4'd7: tx_data <= data_temp[6];
 4'd8: tx_data <= data_temp[7];
 4'd9: tx_data <= 1'b1;

 4'd10: tx_data <= 1'b0;
 4'd11: tx_data <= data_temp[8];
 4'd12: tx_data <= data_temp[9];
 4'd13: tx_data <= data_temp[10];
 4'd14: tx_data <= data_temp[11];
 4'd15: tx_data <= data_temp[12];
 4'd16: tx_data <= data_temp[13];
 4'd17: tx_data <= data_temp[14];
 4'd18: tx_data <= data_temp[15];
 4'd19: tx_data <= 1'b1;

 4'd20: tx_data <= 1'b0;
 4'd21: tx_data <= data_temp[16];
 4'd22: tx_data <= data_temp[17];
 4'd23: tx_data <= data_temp[18];
 4'd24: tx_data <= data_temp[19];
 4'd25: tx_data <= data_temp[20];
 4'd26: tx_data <= data_temp[21];
 4'd27: tx_data <= data_temp[22];
 4'd28: tx_data <= data_temp[23];
 4'd29: tx_data <= 1'b1;

 4'd30: tx_data <= 1'b0;
 4'd31: tx_data <= data_temp[24];
 4'd32: tx_data <= data_temp[25];
 4'd33: tx_data <= data_temp[26];
 4'd34: tx_data <= data_temp[27];
 4'd35: tx_data <= data_temp[28];
 4'd36: tx_data <= data_temp[29];
 4'd37: tx_data <= data_temp[30];
 4'd38: tx_data <= data_temp[31];
 4'd39: tx_data <= 1'b1;

 4'd40: tx_data <= 1'b0;
4'd41: tx_data <= data_temp[32];
 4'd42: tx_data <= data_temp[33];
 4'd43: tx_data <= data_temp[34];
 4'd44: tx_data <= data_temp[35];
 4'd45: tx_data <= data_temp[36];
 4'd46: tx_data <= data_temp[37];
 4'd47: tx_data <= data_temp[38];
 4'd48: tx_data <= 1'b0;
 4'd49: tx_data <= 1'b1;

 default tx_data <= 1'b1;
 endcase

else 
tx_data <= 1'b1;

end


这里面存在跨时钟域问题,加入fifo和RAM进行解决,在线抓取数据,看看UART发送正常不,以及UART波特率设置是否正常。

中间需要加一个FIFO或者RAM,传感器读取速率和串口发送速率不匹配,数据会出错,我也尝试了,目前还在解决中。