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
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354694
  • uart
    +关注

    关注

    22

    文章

    1227

    浏览量

    101161

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

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

收藏 人收藏

    评论

    相关推荐

    一些常见的动态电路

    无论是模电还是数电,理论知识相对来说还是比较枯燥,各种电路原理理解清楚不算容易,换种生动形象的方式或许会增加一些趣味性,也更容易理解这些知识。下面整理了一些常见的电路,以动态图形的方式展示。 整流
    的头像 发表于 11-16 09:26 156次阅读
    <b class='flag-5'>一些</b>常见的动态电路

    分享一些常见的电路

    理解模电和数电的电路原理对于初学者来说可能比较困难,但通过一些生动的教学方法和资源,可以有效地提高学习兴趣和理解能力。 下面整理了一些常见的电路,以动态图形的方式展示。 整流电路 单相桥式整流
    的头像 发表于 11-13 09:28 174次阅读
    分享<b class='flag-5'>一些</b>常见的电路

    求助,关于TLV320AIC3106滤波器配置有一些疑问求解

    关于TLV320AIC3106滤波器配置有一些疑问,如附件公式N3 N4 N5和D4 D5在寄存器里面没用明确怎么配置。用TIBQ配置寄存器的时候也没有这几项参数,哪位大虾能帮忙解释
    发表于 11-04 06:22

    LED驱动器应用的一些指南和技巧

    电子发烧友网站提供《LED驱动器应用的一些指南和技巧.pdf》资料免费下载
    发表于 09-25 11:35 0次下载
    LED驱动器应用的<b class='flag-5'>一些</b>指南和技巧

    求CSU8RP1186一些关于电子秤开发例程,最好是C的,跪谢

    有无CSU8RP1186一些关于电子秤的参考资料及源码,最好是C的,或者其他相近芯片的电子秤资料,帮忙发到邮箱871030114@qq.com,非常感谢!
    发表于 08-26 14:33

    关于THS4521的一些使用问题求解

    我想请问关于THS4521的一些使用问题。 1、THS4521是否能将0-3V的单端信号转换成共模信号为1,5V的差分信号。想把ths4521用于TMS320F28377S的16位ad采样的前级电路,之间采用的12位adc,为单端信号,现在想对单端信号转为差分信号。不知
    发表于 08-20 08:28

    咨询一些关于LED灯具的问题

    各位大佬,咨询一些关于LED灯具的问题 120W的吸顶灯,用的非隔离式电源,用不到1年,灯具就会闪烁、频闪或不亮,主要是什么原因造成的?是不是驱动芯片太差?
    发表于 07-02 22:33

    STM32L053在STM32CubeMX里面没有关于NVIC的设置,是否这个可以像普通UART样进行设置呢?

    STM32L053在STM32CubeMX里面没有关于NVIC的设置,是否这个可以像普通UART样进行设置呢?
    发表于 04-17 07:20

    STM32L476利用双bank的方式进行升级,在flash设置的一些flag读不到是什么问题?

    STM32L476利用双bank的方式进行升级,这个是通过Syscfg_Memrmp的FB_Mode来做的,我试了下,可以快速切换到另外个bank,但是在flash设置的
    发表于 03-12 07:43

    stm32h743是不是可以直接用ICache加快一些速度?

    stm32h743是不是可以直接用ICache加快一些速度,而不用DCache,DCache配置ram麻烦?
    发表于 03-08 08:01

    晶振电路电容电阻的一些基本原理和作用解析

    晶振电路的电容和电阻是调整和维持晶振振荡稳定性的关键元件。KOAN凯擎小妹带大家了解下晶振电路电容电阻的一些基本原理和作用。
    的头像 发表于 02-20 16:22 1628次阅读
    晶振电路<b class='flag-5'>中</b>电容电阻的<b class='flag-5'>一些</b>基本原理和作用解析

    往Aducm320 Flash写入了一些数据,如何才能读出来?

    往Aducm320Flash写入了一些数据,如何才能读出来? ADUCM320关于擦除,写入,读写保护等操作在数据手册及例程上均有明确说明与相关例程,但是在读取方面我未发现有明确的描述如何操作,也无相关例程有所参考,故请提供
    发表于 01-12 07:41

    提高嵌入式代码质量的一些方法

    的事情搞复杂,我希望这些文字能给迷惑的人们指出一些正确的方向,让他们少走一些弯路,基本做到一分耕耘一分收获。
    的头像 发表于 11-30 09:15 427次阅读

    单对以太网(SPE)线缆的一些主要特性、优点和应用

    种变体就是以太网线缆(SPE)。 以太网线缆是种专门为以太网通信设计的线缆,具有一些特殊的特性和优点,使其在各种应用得到广泛使用。在
    的头像 发表于 11-27 16:19 918次阅读

    我们为什么需要了解一些先进封装?

    我们为什么需要了解一些先进封装?
    的头像 发表于 11-23 16:32 546次阅读
    我们为什么需要了解<b class='flag-5'>一些</b>先进封装?