一个STM32F10x 计算波特率的宏

发布者:Chanhero最新更新时间:2017-01-03 来源: eefocus关键字:STM32F10x  波特率 手机看文章 扫描二维码
随时随地手机看文章

STM32库里面设置usart的波特率是又乘又除, 初始化的代码可以直接用, 但要提高代码的效率,  
就要直接填分数分频值的立即数进入BRR寄存器, 改变波特率

所以写了下面的宏, 希望大家有用

/* 波特率的分数分频值宏 */ 
//clk: usart时钟, bps: 需设置的波特率 
#define M_USART_BAUD_RATE(_clk,_bps)  / 
  ((u16)(((_clk / _bps) & 0xFFF0) + / 
        ((((((_clk / 1600) - (_clk / _bps / 16) * (_bps / 100)) / 
          * 160 / (_bps / 100)) + 5) / 10) & 0xF)))

用法: 
    //时钟是72MHz, 波特率57600, 修改usart1的波特率 
    USART1->BRR = M_USART_BAUD_RATE(72000000,57600);//值为0x4E2 
    //时钟是64MHz, 波特率57600, 修改usart1的波特率 
    USART1->BRR = M_USART_BAUD_RATE(64000000,57600);//值为0x457

 

特别提醒,使用USART1可以使用系统频率,当这个波特率宏在USART2和USART3使用时,应将系统时钟除于2。

如://时钟是72MHz, 波特率57600, 修改usart2的波特率 
    USART2->BRR = M_USART_BAUD_RATE(36000000,57600);


关键字:STM32F10x  波特率 引用地址:一个STM32F10x 计算波特率的宏

上一篇:STM32的USB通信资料
下一篇:四旋翼飞行器的飞控实现

推荐阅读最新更新时间:2024-03-16 15:28

英智能跨界储能 ePower储能系列产品发布
  11月1日,宏英新能源新品发布会举行,“ePower 储能系列产品”及“1+1=0零碳恒等式”全新理念,”重磅全球首发!这是宏英集团在历史发展节点上的新起点、新跨越,展现了宏英集团不断突破、求新的创造精神。   宏英联合创始人曾晖宣布“ePower储能系列产品”正式发布。产品以零碳生态伙伴概念出发,从“安”“睿”“悦”三个方面诠释产品的设计理念,彰显硬核实力。   “安”代表安全、安心,包含三个维度本征安全、神经网络安全和预测安全。零碳未来的核心之一是工商业用能侧,而最大挑战源自于使用场景的复杂多变以及用电单位对储能安全的高要求。守卫工商业设备、资产和人身安全,是作为伙伴的最首要任务,e
[新能源]
FPGA动态局部可重构中基于TBUF总线设计
  引 言   FPGA动态局部可重构技术是指允许可重构的器件或系统的一部分进行重新配置,配置过程中其余部分的工作不受影响。动态局部可重构缩短了重构的时间,减少了系统重构的开销,提高了系统的运行效率。局部动态可重构技术中通常将系统划分为固定模块和可重构模块。可重构模块与其他模块之间的通信(包括可重构模块和固定模块之间、可重构模块和可重构模块之间)都是由总线宏实现的。   动态可重构技术在FPGA中的实现是Xilinx公司首先提出的,并且提供了相应的开发工具和开发流程。他们从Virtex系列器件开始支持动态可重构技术,同时他们提供了现成的总线宏文件给动态可重构系统开发者使用,但是它们提供的总线宏设计与软件版本的兼容性很差。Xili
[嵌入式]
很多工程师在选择波特率时非常头疼,一文读懂如何快速解决特殊波特率计算的问题
影响总线稳定的因素有很多,其中波特率是一项非常重要的指标,很多工程师在选择波特率时非常头疼。今天我们就来说说该如何快速解决特殊波特率计算的问题。 CAN总线采用的是异步串行通信,也就是没有单独的线来保证各个之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。 CAN总线里我们可以通过对CAN节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的分频得到
[机器人]
电源与功率市场强劲 华虹力胜券在握
电子网消息,根据拓墣产业研究院最新报告指出,受到高运算量终端装置以及数据中心需求的带动,2017年全球晶圆代工总产值约573亿美元,较2016年成长7.1%,全球晶圆代工产值连续五年年成长率高于5%。 2017年,在市场对8英寸厂需求持续畅旺下,华虹宏力通过产能、研发、质量齐发力,销售额屡创新高。第三季度,华虹宏力销售收入达到约2.1亿美元,同比增长13.3%,连续27个季度实现盈利,显现出强劲的竞争实力。据华虹宏力技术研发集成一部BCD科科长金锋接受集微网采访时表示,今年华虹宏力的成长来源于多个应用市场的快速增长。其中在功率器件以及模拟与电源管理两个市场,分别占据了华虹宏力27.6%、18.9%的营收比例,主要得益于LED照
[半导体设计/制造]
keil5+STM32F10x 使用ST-Link烧写程序;使用FlyMcu烧写程序
ST-Link 这个是J-Link调试,应该差不多: https://www.cnblogs.com/sovagxa/p/8997388.html 淘宝店家给的调试器是ST-Link的: 运行后,首先先连接: 之后打开要下载的.hex文件,图中对应按钮打开文件: 设置settings,选择SWD: 之后点击编程并校验: FlyMcu usb连接时,要注意usb1是可以下载程序的,usb2不行 选择对应的端口,选项是校验与编程后执行,RTS的高电平复位DTR低电平进BootLoader 之后选择一个.hex文件,点击开始编程:
[单片机]
keil5+STM32F10x 使用ST-Link烧写程序;使用FlyMcu烧写程序
李彦和陆奇的百度进化论:从搜索到人工智能
7月5日,11点59分,百度创始人、董事长兼首席执行官李彦宏乘坐无人驾驶汽车途径北京五环,总共走了15公里后,终于步上国家会议中心主题会议厅的演讲台,穿着印有百度LOGO的白色衬衣,面带微笑。   此时,早已进行完一轮开场演讲第二次上台的百度集团总裁兼首席运营官陆奇笑着问李彦宏:参加今天的开发者大会,你有什么感觉?“就看到黑压压的一片。”李彦宏笑了,说“也是,第一次举办开发者大会。”   此次百度AI开发者大会参会人数达到4500人。据说有4000多人是开发者。这是百度面向全球推出的首届开发者大会。   而李彦宏坐无人驾驶汽车来会场并和陆奇搭档出场的方式,无疑表明了AI在百度的重要层级。至此,或许如陆奇开场时所说,百度一定意义上已
[手机便携]
STM32F10X的时钟树及时钟初始化
对于初学者而言,时钟是一个很重要很深的概念,对于STM32芯片来讲,为了实现低功耗,设计了一个功能完善但是却很复杂的时钟系统,使得外围功能的时钟可配置,相对应的,单片机的时钟基本上固定的几种,简单配置后就能使用,而STM32的外围功能不仅要配置,还需要在最开始就要设置这些外设时钟,只有使能这些外设时钟后,这些外设才能够使用。 STM32的时钟树,如下图所示: STM32有一下4个时钟源: (1)高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振,开发板上的8MHz时钟就是指的这个。 (2)高速内部时钟(HSI): 由内部RC振荡器产生,频率为8MHz,但不稳定。
[单片机]
<font color='red'>STM32F10X</font>的时钟树及时钟初始化
串口波特率转换的纯软件实现
串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功。可是在许多情况下,两种不同格式比如不同波特率的串口也要相互通信,这就必须进行串口波特率等格式的转换。本文介绍了如何用纯软件实现串口波特率的转换。 如果串口设备1与串口设备2之间需要通信,但是它们之间的通信波特率不一样。纯软件实现串口波特率的转换的原理就是利用计算机的两个串口,称为串口A和串口B,分别设置为不同的波特率、不同的校验位、不同的数据位和不同的停止位。其中串口A按照串口A设置的波特率等格式接收数据立即从串口B按照串口B设置的波特率等格式发送出去,同样串口B以串口B设置波特率等格式收到的数据立即从串口A以串口A设置的波特率等格式
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved