[应用相关] 如何设置波特率使误差最小

[复制链接]
1356|23
 楼主| feiqi1 发表于 2020-9-22 20:03 | 显示全部楼层 |阅读模式
如何设置波特率使误差最小?
litengg 发表于 2020-9-22 20:13 | 显示全部楼层
EXAMPLE: a baud rate of 4800 baud is required with a crystal frequency of
32,768 Hz. This is necessary because the UART also has to run during low power
mode 3. With only the ACLK available, the theoretical division factor—the
truncated value is the content of baud-rate register UBR (UBR1/UBR0)—is:
UBR
32768
4800
6.82667
qiangweii 发表于 2020-9-22 20:13 | 显示全部楼层
还有相应的函数:
void SetBaudRateRegisters(long clk,long baud)
{
    int n = clk / baud;     //整数波特率
    char mSum = 0;            //Σmi
    int txEr0;              //对应位为0时错误率
    int txEr1;              //对应位为1时错误率
    char i = 0;             //循环计数

    UxBR1 = n >> 8;         //高8位
    UxBR0 = n & 0xff;       //低8位
    UxMCTL = 0;
   
    //循环 比较错误率大小 设置UxMCTL
    for(;i < 8;i++)
    {
        txEr0 = 100 * baud * ((i + 1) * n + mSum) / clk - 100 * (i + 1);
        txEr1 = 100 * baud * ((i + 1) * n + mSum + 1) / clk - 100 * (i + 1);
        if(abs(txEr1) < abs(txEr0))
        {
            mSum++;
            UxMCTL |= (1<<i);
        }
    }
}
qiangweii 发表于 2020-9-22 20:16 | 显示全部楼层
负载电容对于晶振来说非常重要
shashaa 发表于 2020-9-22 20:16 | 显示全部楼层
负载电容要按晶振要求的负载电容接  
shashaa 发表于 2020-9-22 20:19 | 显示全部楼层
看这个文档,里面有表格,按表格设置就行。
http://wenku.baidu.com/view/d73645d233d4b14e852468bb.html
xia00 发表于 2020-9-22 20:20 | 显示全部楼层
波特率与她的定时器设置和振荡频率有关,凡是能够影响振荡稳定性的都影响。
hfdy01 发表于 2020-9-22 20:26 | 显示全部楼层
这个最好设置的波特率是所用的频率的公约数的。。
CallReceiver 发表于 2020-9-22 20:27 | 显示全部楼层
若不是公约数的,那么就是余数越小越好。
boy1990 发表于 2020-9-22 20:32 | 显示全部楼层
这个算法的比较复杂的啦,不过应该很有效果的。。
sourceInsight 发表于 2020-9-22 20:33 | 显示全部楼层
波特率误差在2.5%的误差范围下,可以保证可靠传输
Listate 发表于 2020-9-22 20:39 | 显示全部楼层
主要还是看晶振
你用的是什么芯片?
Mozarts 发表于 2020-9-22 20:40 | 显示全部楼层
最大偏差一般在5% 以内都可以正常通信
_gege 发表于 2020-9-22 20:46 | 显示全部楼层
在921600速率下传输几百KB的数据,非常稳定可靠。
Mozarts 发表于 2020-9-22 20:46 | 显示全部楼层
考虑到通信的时候的波特率
Edisons 发表于 2020-9-22 20:52 | 显示全部楼层
选择合适的晶振就可以的。
laozhongyi 发表于 2020-9-22 20:53 | 显示全部楼层
做好做的是合理计算波特率误差率
天意无罪 发表于 2020-9-23 08:54 | 显示全部楼层
波特率设置有关寄存器的分频因子最好是整数
powermaker2568 发表于 2020-9-23 17:39 | 显示全部楼层
这个?问题感觉比较奇葩诶!!!!!应该是取决于晶振吧?
paotangsan 发表于 2020-10-10 12:49 | 显示全部楼层
感谢楼主的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

424

主题

1616

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部