设置的16位数据是01000010 01000010,2个8位的10进制都是66,对应ascii是B,用串口调试工具显示接受了2个字符,但是只显示一个B
然后又用labwindows试验,收到的数据显示是66和-2,实在不知道哪里有问题
我把16位数据一起发送了,是按照uart协议发的,大佬们能看下吗
always@(posedge clk or negedge rst)
begin
if(!rst)
begin
num<=0;
tx_r<=1'b1;
end
else if(tx_en) begin
if(clk_bps) begin
num<=num+1;
case(num)
4'd0:tx_r<=1'b0;
4'd1:tx_r<=tx_data[0];
4'd2:tx_r<=tx_data[1];
4'd3:tx_r<=tx_data[2];
4'd4:tx_r<=tx_data[3];
4'd5:tx_r<=tx_data[4];
4'd6:tx_r<=tx_data[5];
4'd7:tx_r<=tx_data[6];
4'd8:tx_r<=tx_data[7];
4'd9:tx_r<=1'b1;
4'd14:tx_r<=1'b0;
4'd15:tx_r<=tx_data[8];
4'd16:tx_r<=tx_data[9];
4'd17:tx_r<=tx_data[10];
4'd18:tx_r<=tx_data[11];
4'd19:tx_r<=tx_data[12];
4'd20:tx_r<=tx_data[13];
4'd21:tx_r<=tx_data[14];
4'd22:tx_r<=tx_data[15];
4'd23:tx_r<=1'b1;
default:tx_r<=1'b1;
endcase
end
else if(num==24)
num<=0;
end
end
|