这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 串口问题

共9条 1/1 1 跳转至

串口问题

助工
2013-07-22 16:05:01     打赏

源程序为51FPGA的串口收发程序

 

`timescale 1ns / 1ps

module UART_tx(sys_clk,
     sys_rstn,
     rx_data,
     rx_int,
     rs232_tx,
     clk_bps,
     bps_start
     ); 
input sys_clk;
input sys_rstn;
input [7:0]rx_data;
input clk_bps;
input rx_int;
output rs232_tx;
output bps_start;

reg rx_int0,rx_int1,rx_int2;
reg [9:0] tx_data;
reg bps_start_r;
reg tx_en;
reg [3:0]num;
reg rs232_tx_r;
wire neg_rx_int;
always @(posedge sys_clk or negedge sys_rstn)
 begin
  if(!sys_rstn)
   begin
    rx_int0 <=1'b0;
    rx_int1 <=1'b0;
    rx_int2 <=1'b0;
   end
  else
   begin
    rx_int0 <=rx_int;
    rx_int1 <=rx_int0;
    rx_int2 <=rx_int1;
   end
 end
 
assign neg_rx_int=rx_int2 & (~rx_int1);

always @(posedge sys_clk or negedge sys_rstn)
 begin
  if(!sys_rstn)
   begin
    bps_start_r <=1'bz;
    tx_en   <=1'b0;
    tx_data  <=8'd0;
   end
  else if(neg_rx_int)
   begin
    bps_start_r <=1'b1;
    tx_en   <=1'b1;
    tx_data  <={1'b1,rx_data,1'b0};
   end
  else if(num==4'd10)
   begin
    bps_start_r <=1'b0;
    tx_en   <=1'b0;
   end
 end

always @(posedge sys_clk or negedge sys_rstn)
 begin
  if(!sys_rstn)
   begin
    num<=4'd0;
    rs232_tx_r<=1'b1;
   end
  else if(tx_en)
   begin
    if(clk_bps)
     begin
      num<=num+1'd1;
      rs232_tx_r<=tx_data[num];
     end
     
    else if(num==4'd10)
       num<=4'd0;
   end
 end

assign bps_start =bps_start_r;
assign rs232_tx =rs232_tx_r;

endmodule

 

对于程序里的黄色那条语句我有个不解。我知道一个这个程序的串口收发是10为,起始位+数据+停止位,前后加两位是表示起始位和停止位,但是起始位是0,结束位是1啊。望大神解答下。




关键词: 串口     问题     begin    

专家
2013-07-22 16:15:01     打赏
2楼

汇编,不是很懂。帮你在群里问问


助工
2013-07-22 16:17:05     打赏
3楼
我觉得应该是数据从低往高送出

高工
2013-07-22 16:18:14     打赏
4楼

没有搞清位拼运算符的高低位顺序吧!


专家
2013-07-22 16:18:43     打赏
5楼

是为了好判断收发的数据吗?数据增加1 b0


助工
2013-07-22 16:30:18     打赏
6楼

哈哈,自己疏忽!是方向弄反了。谢谢各位啊


院士
2013-07-23 08:39:06     打赏
7楼
一语道破天机

院士
2013-07-23 10:12:51     打赏
8楼
嘿嘿 版主现在都讲究跨界。用单片机的童鞋也需要会fpga的

专家
2013-07-23 14:38:02     打赏
9楼
看来我落后了

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]