欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    STM32串口自动识别波特率的原理.docx

    • 资源ID:1562624       资源大小:63.47KB        全文页数:7页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STM32串口自动识别波特率的原理.docx

    概述关于自动识别URRT串口波特率的这个问题相信有项目经验,或者认真研究过串口的朋友都应该多多少少知道点自动识别的方法。可俄绝大部分知道的就是通过通过软件程让波特率一一匹配来实现,这种方法也是最常见,而且还比较有效的一种方法。上面这种方法就是大家熟知的通过软件来检测波特率的方法.其实.还有种方法就是逋过串口硬件自身完成波特率来检测。针对STM32.在ST官方其实在应用笔记和参考手册文档中都有提到.下面,我结合文档简单讲下硬件自动波特率检测的内容.2STM32硬件自动波特率检测ABR:AutoBaudRate.自动波特率检测使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据速率.1 .ABR应用地方事先不知道系统的通信速度.系统正在使用精确度相对较低的时钟源且该机制允许在不测量时钟偏差的情况下获得正确的波特率.2 .支持ABR系列在STM32中,支持硬件自动波特率检测的只有部门系列才支持,之前出来比较早的系列不支持(如FIFi).这后面推出来的系列都支持这个功能,包含最新才出来的STM32H7、GO系列都支持”ProductABRsupportMainstreamSTM32F0YMSTM32F1NOSTM32F3Y1.MIHAgb-prforvnancSTM32F2NOSTMr4NOSTM32F7Y-IUttr>4owpowrSTM321.0Y1.MSTM3211NOSTM321.4Wt当然,对于内置ABR的STM32系列设备而吉,并非所有实例化USART接口均支持自动波特率检测。>MB余UtAMTf1.WTWM3 .自动波特率检测模式ABR是指接收设备通过检查第一个字符(通常是预先选择的标志字符确定传入数据速率的过程。STM32产M上的自动波特率检测功能内置的各种模式基于不同字符模式:模式0,以“位为开头的任意字符:模式1,以IOXX桢式开头的任何字符:模式2:Ox7F:模式3:0x55:ABE»0NKTRruTW.MB夏.usRittwi±M1.)匚1uwuM<*4rafrv.aMx.uum会肥«一个afm.aTM>f0>.wwwaemrMItMMIT1.Me2wrvm.标样关笈MW曾haz.TJ1.TMOM3A<«XT.篇凭公aomft.*aattMHaw*.MRXAUMMB个.WHI1.2TiWuV,,一提示IA.在所有RBR模式下,都会在同步数据接收期间多次校测波特率,并将每一次的检测值与上一次的检测值进行比较.B.在7位数据长度模式下,不支持Ox7F和0x55帧检测ABR模式。4 .代码配Jt相关代码,官方提供有基于(标准外设库、HA1.库的)参考例程,比如同标准外设阵参考代码:staticvoidAuto8auRate-Start8itMeth<xi(void)小小力2/USARTjjnd(EVA1._COM1,ENAB1.E);*ConfiguretheAutoBaudRatemethod*/USART-AutoBaudRateConfig(EVA1.-CM1.,USART-AutoBaudRate-,StartBit);/USARTeAutoBaudRateCmd(EVA1.-COM1,ENAB1.E);*Mitunti1.deceiveenab1.eacknow1.edgef1.agisset*/whi1.e(USART_GtF1.agStatus(EVA1._COM1.,USART_F1.AG_REACK)RESET)*Waitunti1.Transmitenab1.eacknow1.edgef1.agisset*/whi1.e(USART.GetF1.agStatus(EVA1.-COM1.,USART_F1.AGJTEACK)RESET)/1.oopunti1.theendOfAutobaudratephase*/whi1.e(USART.GetF1.agStatus(EVA1.-COM1.,USART_F1.AG_ABRF)RESET)curredVif(USART-GetF1agStats(EVA1.eCOM1.,USART_F1.AG_ABRE)!RESET)STM_EVA1._1.EDOn(1.ED3);e1.se(STM_EVA1._1.ED0n(1.ED2);/Waitunti1.RXNEf1.agisset*/whi1.e(USART.GetF1.agStatus(EVA1.-,COM1.,USART_F1.AG_RXNE)RESET)/Waitunti1.TXEf1.agissett/whi1.e(USART,GetF1.agStatus(EVA1.-COM1.,USART_F1.AG_TXE)RESET)USARTeSendData(EVAJCoM1.»USART_ReceiveData(EVA1.-COM1);*deartheTEbit(ifatransmissionisongoingorGdataisintheTDRjitwi1.1.besentbeforeefective1.1.ydisab1.ingthetransmission)*/USART-DirectifwkxJeCmd(EVA1._COM1,USARTJOdJTx,DISAB1.E);/ChecktheTransferComp1.eteF1.ag*/whi1.e(USART-GetF1.agStatus(EVA1._COM1,USART_F1.AG_TC)=RESET)/USAR1.Gnd(EVA1.COM1,DISAB1.E);)5 .ABR误差计算由USART时钟源(fCK)决定通信速率范国(尤其是城大通信速率).接收器采用不同的用户可配置过采样技术,可区分有效输入数据和噪声,从而用于恢风数据。这可以在域大通信速率与抗噪声/时钟不准确性之间实现平衡.可通过编程USARTxCR1.寄存器中的OYER8位来选择过采样方法,可以是波特率时钟的16倍或8倍.USART时钟海频率必须与预期通信速率兼容:16倍过采样时,波特率介于FCK/65535与fCK/16之间.8倍过采样时,波特率介于fCK/65535与fCK/8之间。波特率误差取决FUSART时钟源、过采样方法和ABR模式.误差()=预期波特率-实际波特率,100预期波特率其中:预期波特率取决于发送设备实际波特举是USART接收容使用自动波特率检测悌作确定的波特率。6 .误差下图来自官方测试数据,基于:fc-72MHz时ABR的误差计算,115200bits/s预期波特率从上图可以看出:ABR模式2和3的精确度高于模式。和I:它们的波特率误差值更低。不过,由于预期波特率与实际波特率之间的误差小于因此所有模式的结果均正常

    注意事项

    本文(STM32串口自动识别波特率的原理.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开