我是靠谱客的博主 魁梧蛋挞,最近开发中收集的这篇文章主要介绍串口通信USART设置波特率程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用Verilog代码编写的生成波特率程序:
程序目前支持9600、19200、38400、57600、115200,如需要其他波特率请根据计算方法加入代码中,输入的时钟信号为50MHz
module SpeedSet(clk,reset,cnt);
input clk,reset;
output cnt;
///波特率对应的脉冲的个数。计算方法如下:
//以9600bps为例:1s/9600/20ns=5208.33333,即有5208个周期。
parameter bps9600     = 5208,
bps19200    = 2604,
bps38400    = 1302,
bps57600    = 868, 
bps115200   = 434; 
//个数的一半,即在周期的中间位置。进行采样。  
parameter bps9600_2   = 2604,  
bps19200_2  = 1302, 
bps38400_2  = 652, 
bps57600_2  = 434,        
bps115200_2 = 217;     

reg cnt;
reg [12:0]sample;
always@(posedge clk or negedge reset)
begin
if(!reset) begin
sample<=0;
end
else if(sample==bps115200) begin
sample <= 0;
end
else begin
sample <= sample + 1'b1;
end
end

always@(posedge clk or negedge reset)
begin
if(!reset)
cnt<=1'b0;
else if(sample==bps115200)
cnt<=1'b1;
else
cnt<=1'b0;
end

endmodule


最后

以上就是魁梧蛋挞为你收集整理的串口通信USART设置波特率程序的全部内容,希望文章能够帮你解决串口通信USART设置波特率程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部