关于STM32自动识别UART串口波特率的问题.doc
《关于STM32自动识别UART串口波特率的问题.doc》由会员分享,可在线阅读,更多相关《关于STM32自动识别UART串口波特率的问题.doc(4页珍藏版)》请在三一文库上搜索。
1、关于STM32自动识别UART串口波特率的问题最近有朋友问关于UART串口自动识别波特率的问题,今天就在这里写点相关内容。1写在前面关于自动识别UART串口波特率的这个问题,相信有项目经验,或者认真研究过串口的朋友都应该多多少少知道一点自动识别的方法。可能绝大部分知道的就是通过波特率一一匹配来实现,这种方法也是最常见,而且还比较有效的一种方法。上面这种方法就是大家熟知的通过软件来检测波特率的方法,其实,还有一种方法就是通过硬件自身完成波特率来检测。针对STM32,在ST官方其实在应用笔记和参考手册文档中都有提到。下面,我结合文档简单讲下硬件自动波特率检测的内容。2STM32硬件自动波特率检测A
2、BR:Auto Baud Rate,自动波特率检测使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据速率。1.ABR应用地方事先不知道系统的通信速度。系统正在使用精确度相对较低的时钟源且该机制允许在不测量时钟偏差的情况下获得正确的波特率。2.支持ABR系列在STM32中,支持硬件自动波特率检测的只有部门系列才支持,之前出来比较早的系列不支持(如F1 F4),这后面推出来的系列都支持这个功能,包含最新才出来的STM32H7、G0系列都支持。当然,对于内置ABR的STM32系列设备而言,并非所有实例化USART接口均支持自动波特率检测。3.自动波特率检测模式ABR是指接收设
3、备通过检查第一个字符(通常是预先选择的标志字符)确定传入数据速率的过程。STM32产品上的自动波特率检测功能内置的各种模式基于不同字符模式:模式0:以“1”位为开头的任意字符;模式1:以10xx模式开头的任何字符;模式2:0x7F;模式3:0x55;提示:A.在所有ABR模式下,都会在同步数据接收期间多次检测波特率,并将每一次的检测值与上一次的检测值进行比较。B.在7位数据长度模式下,不支持0x7F和0x55帧检测ABR模式。4.代码配置相关代码,官方提供有基于(标准外设库、HAL库的)参考例程,比如F0标准外设库参考代码:static void AutoBauRate_StartBitMet
4、hod(void) /* USART enable */ USART_Cmd(EVAL_COM1, ENABLE); /* Configure the AutoBaudRate method */ USART_AutoBaudRateConfig(EVAL_COM1, USART_AutoBaudRate_StartBit); /* Enable AutoBaudRate feature */ USART_AutoBaudRateCmd(EVAL_COM1, ENABLE); /* Wait until Receive enable acknowledge flag is set */ whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 STM32 自动识别 UART 串口 波特率 问题
链接地址:https://www.31doc.com/p-3387832.html