参考黑金的串口收发,将串口收发和fifo写在一个.v文件中,操作接口主要变为fifo,rx_fifo_empty!=1时,有收到数据,读出来即可,发送串口只需要往fifo中存入数据。接收时判断起始位为低和停止位为高,防止上电前串口上一直有数据发送进来而引起的误码。
2021-08-26 15:02:42 2KB FIFO Verilog uart
1
UART 按键中断 定时器 LED 百兆网nios2设计例程源码 fpga quartu工程文件6个合集, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 lab1_hello_world lab2_led lab2_led_100M lab3_button_interrupt lab4_timer lab5_uart lab6_seg
UART串口通信_FPGA和上位机通信实验FPGA设计Verilog逻辑源码Quartus11.0工程文件. 功能描述:串口通信__FPGA和上位机通信(波特率:9600bps,10个bit是1位起始位,8个数据位,1个结束) ** 操作过程:按动key2,FPGA向PC发送“da xi gua"一次,KEY1是复位按键。 ** 字符串(串口调试工具设成字符格式接受和发送方式),FPGA接受(0到9)后显示在7段数码管上。 module uart(clk,rst,rxd,txd,en,seg_data,key_input); input clk,rst; input rxd; //串行数据接收端 input key_input; //按键输入 output[7:0] en; output[7:0] seg_data; reg[7:0] seg_data; output txd; //串行数据发送端 ////////////////////inner reg//////////////////// reg[15:0] div_reg; //分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟 reg[2:0] div8_tras_reg; //该寄存器的计数值对应发送时当前位于的时隙数 reg[2:0] div8_rec_reg; //该寄存器的计数值对应接收时当前位于的时隙数 reg[3:0] state_tras; //发送状态寄存器 reg[3:0] state_rec; //接受状态寄存器 reg clkbaud_tras; //以波特率为频率的发送使能信号 reg clkbaud_rec; //以波特率为频率的接受使能信号 reg clkbaud8x; //以8倍波特率为频率的时钟,它的作用是将发送或接受一个bit的时钟周期分为8个时隙 reg recstart; //开始发送标志 reg recstart_tmp; reg trasstart; //开始接受标志 reg rxd_reg1; //接收寄存器1 reg rxd_reg2; //接收寄存器2,因为接收数据为异步信号,故用两级缓存 reg txd_reg; //发送寄存器 reg[7:0] rxd_buf; //接受数据缓存 reg[7:0] txd_buf; //发送数据缓存 reg[2:0] send_state; //这是发送状态寄存器 reg[19:0] cnt_delay; //延时去抖计数器 reg start_delaycnt; //开始延时计数标志 reg key_entry1,key_entry2; //确定有键按下标志 //////////////////////////////////////////////// parameter div_par=16'h145; //分频参数,其值由对应的波特率计算而得,按此参数分频的时钟频率是波倍特率的8 //倍,此处值对应9600的波特率,即分频出的时钟频率是9600*8 (CLK 50M) //////////////////////////////////////////////// assign txd=txd_reg; //assign lowbit=0; assign en=0; //7段数码管使能信号赋值 always@(posedge clk ) begin if(!rst) begin cnt_delay<=0; start_delaycnt<=0; end else if(start_delaycnt) begin if(cnt_delay!=20'd800000) begin cnt_delay<=cnt_delay+1'b1; end else begin cnt_delay<=0;
基于FPGA和串口通信的CRC生成与校验的实验代码,包含了发送和接收两个工程 关于实验相关内容可以看这篇博客: https://blog.csdn.net/qq_37147721/article/details/84662308#comments
2021-08-23 11:01:14 3.9MB FPGA UART CRC 循环冗余校验
1
FPGA用Verilog编写的uart接口,包括发射和接收
2021-08-21 22:40:34 609KB FPGA Verilog UART 发送
1
基于Verilog hdl 的简单的uart通信,能实现的基本的串口通信功能。很具有参考价值和学习。
2021-08-21 22:37:26 792KB Verilog uart
1
CP2102是一款USB转UART桥接芯片,本站提供的CP2102驱动程序为Linux版本,支持2.6.38 kernel (Ubuntu 11.04),属于官方正版好用,内有详细使用说明。
2021-08-20 22:00:17 10KB CP2102 USB转UART Linux Ubuntu
1
1.实现了基于STM32H743+DMA+UART的通信 2.采用了UART的空闲中断实现数据的接收 3.可接收发送任意数据长度
2021-08-20 13:00:24 1.36MB STM32H743 DMA UART+IDLE中断
1
利用STM8S003做的 I2C转串口,iic收到的数据利用STM8的串口转发出去
2021-08-17 17:02:51 5.08MB STM8S003 IIC I2C UART
1
基于BLE4.0的低功耗蓝牙通信模块,实现串口透传功能,
2021-08-17 09:34:24 9.05MB BLE4.0 UART
1