打印
[应用相关]

如何设置波特率使误差最小

[复制链接]
1036|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 | 只看该作者
负载电容对于晶振来说非常重要

使用特权

评论回复
5
shashaa| | 2020-9-22 20:16 | 只看该作者
负载电容要按晶振要求的负载电容接  

使用特权

评论回复
6
shashaa| | 2020-9-22 20:19 | 只看该作者
看这个文档,里面有表格,按表格设置就行。
http://wenku.baidu.com/view/d73645d233d4b14e852468bb.html

使用特权

评论回复
7
xia00| | 2020-9-22 20:20 | 只看该作者
波特率与她的定时器设置和振荡频率有关,凡是能够影响振荡稳定性的都影响。

使用特权

评论回复
8
hfdy01| | 2020-9-22 20:26 | 只看该作者
这个最好设置的波特率是所用的频率的公约数的。。

使用特权

评论回复
9
CallReceiver| | 2020-9-22 20:27 | 只看该作者
若不是公约数的,那么就是余数越小越好。

使用特权

评论回复
10
boy1990| | 2020-9-22 20:32 | 只看该作者
这个算法的比较复杂的啦,不过应该很有效果的。。

使用特权

评论回复
11
sourceInsight| | 2020-9-22 20:33 | 只看该作者
波特率误差在2.5%的误差范围下,可以保证可靠传输

使用特权

评论回复
12
Listate| | 2020-9-22 20:39 | 只看该作者
主要还是看晶振
你用的是什么芯片?

使用特权

评论回复
13
Mozarts| | 2020-9-22 20:40 | 只看该作者
最大偏差一般在5% 以内都可以正常通信

使用特权

评论回复
14
_gege| | 2020-9-22 20:46 | 只看该作者
在921600速率下传输几百KB的数据,非常稳定可靠。

使用特权

评论回复
15
Mozarts| | 2020-9-22 20:46 | 只看该作者
考虑到通信的时候的波特率

使用特权

评论回复
16
Edisons| | 2020-9-22 20:52 | 只看该作者
选择合适的晶振就可以的。

使用特权

评论回复
17
laozhongyi| | 2020-9-22 20:53 | 只看该作者
做好做的是合理计算波特率误差率

使用特权

评论回复
18
天意无罪| | 2020-9-23 08:54 | 只看该作者
波特率设置有关寄存器的分频因子最好是整数

使用特权

评论回复
19
powermaker2568| | 2020-9-23 17:39 | 只看该作者
这个?问题感觉比较奇葩诶!!!!!应该是取决于晶振吧?

使用特权

评论回复
20
paotangsan| | 2020-10-10 12:49 | 只看该作者
感谢楼主的分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

424

主题

1616

帖子

1

粉丝