STM32单片机串口通信波特率计算方法

1. 什么是波特率

不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是通讯成功的基本保障。下面以STM32单片机为例,讲解一下串口波特率的计算方法。

2. STM32波特率相关的寄存器

STM32单片机设置波特率的寄存器只有一个:USART_BRR寄存器,如下图所示。

“”

该寄存器的有效位数为16位,前4位用于存放小数部分,后12位用于存放整数部分。将波特率算出来后,数值填入这个波特率就可以了。下面介绍如何计算。

3. 波特率计算方法

STM32的数据手册给出了计算方法,有一个公式,如下图所示:

“”

在这个公式上,共有三个变量,其中两个我们是知道的,Fck和Tx/Rx波特率 这两个是已知的,USARTDIV是未知的。通过该公式的描述可以看出如果使用USART1的话,那Fck就是PCLK2=72MHz,否则就是PCLK1=36MHz,Tx/Rx波特率这个参数是已知的。只需要计算出USARTDIV的值赋值给USART_BRR寄存器就可以了。以115200为例,将公式变形后得到:USARTDIV = 72×1000000/(16×115200) = 39.0625。即将39.0625写入USART_BRR即可。

前文说过,USART_BRR的前4位存放小数部分,后12位存放整数部分。

那小数部分DIV_Fraction = 0.0625×16 = 1 = 0x01;
那整数部分DIV_Mantissa = 39 = 0x27;
那USART_BRR = 0X271;

数据手册给我们提供了一张数据表:

“”

在这张数据表上,已经算出了常用的波特率值,我们可以拿来直接用。但是如果我们想把波特率的计算做成一个传参函数的方式,
如:USART_INIT(uint_t 16 Baud),在调用时只需要写USART_INIT(9600),USART_INIT(115200),那程序该怎么写呢?

4. 程序的实现

下面介绍的是寄存器版的程序。

“”

程序第一步45行:先计算得到USART_DIV,这个就是前面公式的变形;
程序第二步46行:获得USART_DIV的整数部分;
程序第三步47行:获得USART_DIV的小数部分;
程序第四步48行:将整数部分左移4位,即存入BRR寄存器的后12位;
程序第五步49行:将整数和小数部分合在一起,即前4位和后12位重新组合;
程序第六步50行:将计算出来的数值赋给BRR寄存器。

这样一个将波特率作为形参的函数就完成了。从以上来看的话,波特率的计算好像也不是很难啊。

本文转载自:电子工程世界网
转载地址: http://www.eeworld.com.cn/mcu/article_2017111135835.html
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理

  • STM32
  • 单片机
  • 串口通信
  • 波特率

最新文章

为什么单片机系统中上拉电阻非常有必要?
教你4招,小白如何自学单片机,绝对管用!
单片机中断寄存器知识点总结,讲的太详细了!
STM32串口收数据的几种不同方式
基于单片机的段式LCD低成本驱动方法
单片机的4种工作方式介绍

M博士问答

热门产品推荐

关注贸泽微信公众号,发现更多精彩!



产品类别

LED照明 机电产品
工业自动化 机壳产品
工具与供应 光电子产品
工程工具 传感器
无源元件 连接器
电线与电缆 测试与测量
电路保护 热管理产品
电源 嵌入式解决方案
半导体 查看所有

应用和技术

应用

安全 | 电机控制 | 工业 | 广播 | 计算 | 汽车 | 通讯 | 医疗 | 仪器仪表 | 音频 | 照明

技术

MEMS | RFID和NFC | Timing | USB 3.0 | 测试和测量 | 触摸 | 传感器 | 低功率 | 电源 | 电源管理 | 恶劣环境 | 高电压 | 机器人技术 | 开源硬件 | 可编程逻辑 | 宽能阶 | 能量收集 | 太阳能 | 无线充电 | 无线射频 | 无线网状网络 | 物联网 | 智能网格

开发工具中心


● LED 照明开发工具
● 开发软件
● 电源管理IC开发工具
● 光电开发工具
● 传感器开发工具
● 射频/无线开发工具
● 通信开发工具
● 嵌入式开发工具
● 模拟与数字IC开发工具

最新评论

  • 谢谢分享! 11 个月 2 周 之前
  • 谢谢分享 11 个月 2 周 之前
  • 谢谢分享 11 个月 2 周 之前
  • 优秀,好资料!!! 1 年 2 个月 之前
  • 感谢分享 3 年 3 个月 之前
  • 原文没问题,是我搞错了,不好意思哦! 4 年 1个月 之前
  • 应该是一个笔误 4 年 1个月 之前
  • 谢谢你解释一切 4 年 11 个月 之前
  • 开窗处已考虑内层平面成内缩,并已设置合适的禁止布线区。 5 年 2 个月 之前
  • 一般的功率三极管、稳压芯片等 5 年 2 个月 之前

聚圣源浙江卫视视频在线直播寓意好的成语起名字大全不良资产处置姓李的小孩起姓名大全石敢当之雄峙天东演员表常州公司起名牛宝宝起名有水有草驴得水百度云手写软件乐可是什么人物电脑自动关机怎么回事踢脚线高度玛丽美妆店起名字 时尚生肖属鼠起名杂交水稻亩产二手车交易起名字琉璃电视剧免费观看完整版在线观看起名网站 英文去那网飞机票悼念词庆字辈男起名前尘往事小孩起名宝典新生儿旋风少女3兄妹起名尉迟兰心起名公司注册谷歌翻译插件木雕店起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化