OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2595|回复: 2

求助一个自定义波特率的软件

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-9-27
在线时间
5 小时
发表于 2017-7-31 00:34:26 | 显示全部楼层 |阅读模式
1金钱
首先我使用了很多可自定义的波特率调试软件,但是发现,波特率在8K到14K的区域误差是相当严重的,其他区域也存在如此问题,
但是如果把波特率设置到那几个常用的 9600 115200 38400 等是很准确的,但是因为项目需要,对ISO14230通信协议里面的波特率要求10.4K,但是通过串口调试助手打出来实际只有9.3K,引起误码严重。
下面我以 战舰提供的串口助手为例,如果我把波特率设置到12000,那么实际示波器看到的却是9.4k左右,
1.jpg
2.jpg
这让我很郁闷。有不有现成的,测过波特率用起来准的串口调试助手

最佳答案

查看完整内容[请看2#楼]

自己解决了,。。。。。我贴在了学校的论坛上,这里给链接,要看的直接跳过去看吧,懒着转了。各位预防此坑 http://www.cqutlab.cn/thread-250-1-1.html
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-9-27
在线时间
5 小时
 楼主| 发表于 2017-7-31 00:34:27 | 显示全部楼层
本帖最后由 squall001 于 2017-7-31 02:12 编辑

自己解决了,。。。。。我贴在了学校的论坛上,这里给链接,要看的直接跳过去看吧,懒着转了。各位预防此坑
http://www.cqutlab.cn/thread-250-1-1.html
回复

使用道具 举报

0

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-6-19
在线时间
55 小时
发表于 2017-7-31 14:52:16 | 显示全部楼层
我的是这样算的

void Init_USART2(u8 clk,u32 b)
{
        float div;
        u16 mantissa;
        u16 fraction;
       
        RCC->APB1ENR |= 1<<17;                //USART2时钟使能
        RCC->APB2ENR |= 1<<2;                //使能PA口时钟  PA2:TX   PA3:RX
       
        GPIOA->CRL &= 0XFFFF00FF;//PA2:复用推挽输出
        GPIOA->CRL |= 0X00004B00;//PA3:浮空输入
       
        RCC->APB1RSTR |= 1<<17;        //复位串口时钟
        RCC->APB1RSTR &= ~(1<<17);//停止复位时钟
       
        div = (float)(clk*1000000)/(b *16);
       
        mantissa = div;
        fraction = (div - mantissa) *16;
       
        mantissa <<= 4;
        mantissa += fraction;
       
        USART2->BRR = mantissa;//设置波特率
       
        USART2->CR1 = 0X200C;  //使能串口模块,使能接收和发送
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-19 22:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表