1、硬件准备
物料 |
数量 |
EP4CE10E22开发板 |
1 |
Rd-03E |
1 |
4位数码管 |
1 |
杜邦线 |
1 |
2、软件准备
Quartus II 13.0 和 VS Code
3、程序编写
uart_rx
#(
.UART_BPS (18'd256000 ), //串口波特率
.CLK_FREQ (26'd50_000_000 ) //时钟频率
)
uart_rx_inst
(
.sys_clk (sys_clk ),
.sys_rst_n (sys_rst_n ),
.rx (rx ),
.po_data (po_data ),
.po_flag (po_flag )
);
我用的FPGA来实现的距离测试,把FPGA的串口设置为256000波特率
always @(posedge sys_clk or negedge sys_rst_n) begin
if (sys_rst_n == 1'b0) begin
state <= 8'b0;
end
else case (state)
IDLE: if(reg_data_2 == 8'b1010_1010 && reg_data_1 == 8'b1010_1010) state <= INIT;
INIT: if (reg_cnt_1 == 2'd2 && state == INIT) state <= FIRST;
FIRST: begin
data <= {reg_data_5,reg_data_4}; state <= IDLE;
end
default: state <= IDLE;
endcase
end
用状态机来判断开始帧头是否为AA AA,在开始工作,最后传出结果。
传出的结果我没有换算出来直接用数码管显示了。
|