0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于STM32中UART的一些特性分享

strongerHuang 来源:AI电堂 作者:AI电堂 2021-03-20 11:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天给大家分享关于STM32UART的一些特性,主要针对较新系列STM32(如:STM32H7、G0、G4等)的UART,可通过软件改变Rx和Tx引脚、电平反转、高低反序、介绍超时等。

1

支持RXD和TXD管脚互换有些时候,我们在外接RS232芯片时,可能会将RXD和TXD两根线接反。这类低级错误,一般是老司机才会犯。

如果大家知道USART的TXD和RXD管脚可以互换,那么在连接外设RS232芯片时,如果发生错误,就不必再修改硬件,只需直接在软件中将RXD和TXD的管脚反转过来即可修正错误。

参考上图,设置SWAP位,即可将RXD和TXD管脚互换。

2

支持接收和发送的电平极性反转第二个新特性:Tx和Rx电平极性反转。

通常默认串口电平是高电平为逻辑1,低电平为逻辑0。而在STM32的USART新特性中是可以将高电平设置为逻辑0,低电平设置为逻辑1的。

这一特性,让我们在一些特殊的场景下灵活使用,如:USART外接了反相器时就可以直接使用。

在数据接收发送寄存器中,数据也是可以反转的,原来的0变为1,原来的1变为0,这和电平极性反转是类似。需要特别注意的是,在极性反转的时候,起始位和结束位也都反转了,所有的信号电平都反转;而在数据寄存器中只反转了数据位,其中也包含了校验位,没有反转信号的起始位和结束位的极性。

参考上图,在USART_CR2寄存器中TXINV、RXINV和DATAINV位来进行设置。

3

支持数据高位与低位反序发送或接收第三个新特性:发送和接收数据时,可在寄存器中设置是先发低位还是先发高位。

默认的配置都是先发送或接收低位的信号(bit 0),实际应用中,通过USART_CR2中的MSBFIRST设置后,也可以让USART先发送或接收高位信号(bit 7/8),这一点在对数据进行反序的时候会经常用到它。

我们可以考虑这种情况,如果需要把串口接收到的数据先进行反序操作之后,再进行计算,那这个硬件的功能就可以帮助我们节省很多软件的工作量。

4

USART支持DMA传输最后,STM32的USART都是支持DMA的,这一点有利于做数据的连续发送和数据的缓冲接收。在某些STM32产品系列中,如STM32F4和H7系列具有专门的串口FIFO,这就可以用来做串口唤醒,先让MCU进入到Sleep模式,当接收到一个完整的数据包,这个数据包可能是100个字节或者200个字节,之后再唤醒单片机,这样既可以做到不丢数据又可以降低MCU的唤醒频率。

另外,USART的接收还具有超时功能,可以人为设定一个时间,在USART的RTOR寄存器中进行设置,当串口接收的数据帧之间超过了这个设定值,就会引发一个超时中断,串口中会有一个叫RTOF的标志位来显示发生的超时事件,我们通过这个中断中应用的代码就可以知道串口的数据发生了中断现象,近似可认为对方的数据已经发送完成。这种方式,在串口上层协议的开发中,有很多应用场景。

USART 新特性小结

支持RXD和TXD管脚的互换

支持管脚上的电平逻辑反转和数据寄存器中的逻辑反转

支持数据高位与低位反序发送或接收,既可以先发送或接收低位,也可以先发送或接收高位

支持接收数据的超时功能,并且每个USART都可以支持DMA传输

原文标题:UART的Rx和Tx引脚如何互换,电平如何反转

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371134
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106101

原文标题:UART的Rx和Tx引脚如何互换,电平如何反转

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    贴片电容精度J±5%的一些详细知识

    贴片电容精度J±5%表示电容的实际值与标称值之间的偏差范围在±5%以内 ,以下是关于贴片电容精度J±5%的一些详细知识: 、精度等级含义 J±5% :字母“J”在贴片电容的标识通常
    的头像 发表于 11-20 14:38 134次阅读
    贴片电容精度J±5%的<b class='flag-5'>一些</b>详细知识

    晶圆和芯片哪个更难制造一些

    99.999999999%(多个“9”)的纯度,任何微量杂质都会影响半导体特性。从石英砂提炼冶金级硅后,还需通过化学气相沉积等工艺进步提纯,这过程能耗巨大且技术壁垒高3。例
    的头像 发表于 10-15 14:04 458次阅读
    晶圆和芯片哪个更难制造<b class='flag-5'>一些</b>

    STM32的時候是直接用MDK方便还是在vscode用keil插件方便一些

    STM32的時候是直接用MDK方便還是在vscode用keil插件方便一些
    发表于 08-12 08:02

    求助,关于TC387使能以及配置SOTA 中一些问题求解

    你好, 之前我拿到贵司给个demo,里面有一些使能以及配置SWAP的代码, 这里有些疑问 问题1. 判断SOTA功能是否生效,demo中使用的是 SCU_STMEM1的bit位, 代码如下
    发表于 08-08 07:31

    关于芯片设计的一些基本知识

    芯片的设计理念众所周知,芯片拥有极为复杂的结构。以英伟达的B200芯片为例,在巴掌大的面积上,塞入了2080亿个晶体管。里面的布局,堪称个异次元空间级的迷宫。英伟达B200芯片如此复杂的架构
    的头像 发表于 06-11 12:16 788次阅读
    <b class='flag-5'>关于</b>芯片设计的<b class='flag-5'>一些</b>基本知识

    Debian和Ubuntu哪个好一些

    兼容性对比Debian和Ubuntu哪个好一些,并为您揭示如何通过RAKsmart服务器释放Linux系统的最大潜能。
    的头像 发表于 05-07 10:58 852次阅读

    对CY7C65211有一些疑问求解答

    我对 CY7C65211 有一些疑问。 (1)关于制造商字符串,评估套件(CYUSB234)显示“ CYPRESS™ Semiconductor”,但我认为从现在开始发货的设备的默认值将更改
    发表于 05-06 09:28

    如何添加一些网络上的库到mpy固件的说明或手册教程?

    如何添加一些网络上的库到mpy固件的说明或手册教程? 问题2: 关于mpy的image库在哪里能了解学习内部代码,只了解一些python,想知道怎么从c转换成mpy能调用的,自己写的c也能转成py调用
    发表于 04-29 08:16

    树莓派在自动化控制项目中的一些潜在应用

    自动化控制项目中的一些潜在应用。之前,我们已经为Arduino平台探讨了相同的话题。我们确定Arduino是个出色的教育工具,但由于一些限制,它无法在工业环境完全
    的头像 发表于 03-25 09:45 476次阅读
    树莓派在自动化控制项目中的<b class='flag-5'>一些</b>潜在应用

    大力支持推广新能源,那么就分享一些电动汽车电机资料吧

    当前新能源很火爆,国家大力支持推广,这里搜集了一些关于电动汽车的电机资料分享下吧~~~免积分即可下载~~~~
    发表于 03-12 17:12

    独立服务器和云服务器哪个快一些

    独立服务器和云服务器哪个快一些?在数字服务部署,独立服务器与云服务器的速度差异并非绝对,需结合资源配置与应用场景综合判断。以下是UU云对独立服务器和云服务器的核心维度对比分析:
    的头像 发表于 02-05 10:08 799次阅读

    AN29-关于DC-DC转换器的一些想法

    电子发烧友网站提供《AN29-关于DC-DC转换器的一些想法.pdf》资料免费下载
    发表于 01-08 13:57 0次下载
    AN29-<b class='flag-5'>关于</b>DC-DC转换器的<b class='flag-5'>一些</b>想法

    一些关于ldc1000的spi通信的问题求解

    我有一些关于ldc1000的spi通信的问题。 应用情况是spi16f887与ldc1000的spi通信 1.是否对于读、写,都是只需要把CSB变成低电平即可。 2.对于写操作,写地址时(例如
    发表于 12-26 08:23

    串口设计一些关键注意点!千万别踩雷!

    本文将以Air700ECQ/EAQ/EMQ为例,带你从硬件设计的角度,起来了解串口设计一些关键注意点;软件开发或者AT设置方面不做深入探讨。   、串口相关管脚 Air700E
    的头像 发表于 12-25 17:01 976次阅读
    串口设计<b class='flag-5'>一些</b>关键注意点!千万别踩雷!

    滤波器的一些常识

    滤波器简介:滤波器是种用于信号处理的设备或系统,用于改变信号的频率特性,以实现信号的滤波、增强、去噪或降噪等功能。滤波器根据其工作方式可以分为数字滤波器和模拟滤波器。数字滤波器处理数字信号,通常
    的头像 发表于 12-18 17:05 1505次阅读
    滤波器的<b class='flag-5'>一些</b>常识