dma接收双缓存 stm32_「STM32学习笔记」USART 新特性

之前的学习笔记“SPI不够用?USART来帮忙”一文中介绍了用如何把USART当做SPI来用的方法。此外,ST的USART还有很多新特性,没准有你不知道的。

在此,我们整理出来以下串口新特性,供大家参考。

支持RXD和TXD管脚互换

很多时候,我们在外接RS232芯片时,很容易将RXD和TXD两根线接反。这类低级错误,一般是老司机才会犯。如果大家知道USART的TXD和RXD管脚可以互换,那么在连接外设RS232芯片时,如果发生错误,就不必再修改硬件,只需直接在软件中将RXD和TXD的管脚反转过来即可修正错误。

e5a70a3723774975ec88d6e4dc1f41bc.png

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

支持接收和发送的电平极性反转

第二个特性是,接收和发送的电平极性是可以反转的。通常默认串口电平是高电平为逻辑1,低电平为逻辑0;而在ST的USART中是可以将高电平设置为逻辑0,低电平设置为逻辑1的。这一特性,让我们在一些特殊的场景下灵活使用,举个栗子,USART外接了反相器时就可以直接使用。

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

40c66dbd39a304a4a13de97a7b6918ab.png

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

支持数据高位与低位反序发送或接收

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

6f82f7953b7149ea83d4a2e87cc6ce1a.png

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

USART支持DMA传输

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

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

USART 新特性小结

  • 支持RXD和TXD管脚的互换
  • 支持管脚上的电平逻辑反转和数据寄存器中的逻辑反转
  • 支持数据高位与低位反序发送或接收,既可以先发送或接收低位,也可以先发送或接收高位
  • 支持接收数据的超时功能,并且每个USART都可以支持DMA传输

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么数学叫“数学”?

全世界有3.14 % 的人已经关注了数据与算法之美“数学”一词是来自希腊语,它意味着某种“已学会或被理解的东西”或“已获得的知识”,甚至意味着“可获的东西”;“可学会的东西”,即“通过学习可获得的知识”,数学名称的…

5月TIOBE编程榜,Java、PHP降级,C#再度上升!

TIOBE 5月编程语言榜单显示,Java数据下滑,排名降级了一位,被Python超越;PHP继续大幅下滑,排名降级到第9;而C#则是再度稳中求进,已经连续N个月上涨了。曾经Web开发三大语言,在2020年后…

捷达vs7测试_捷达VS7——品质硬核!

立冬,准备好“冬眠”了吗?一汽大众的子品牌-捷达(Jetta)在去年9月推出VS5和VA3之后,新型SUV,捷达VS7车型已在国内正式开始预售。这款新车基于大众MQB平台构建,将推出4款车型供消费者选择,定位为紧凑型SUV。…

一句 Task.Result 就死锁, 这代码还怎么写?

一:背景 1. 讲故事前些天把 .NET 高级调试 方面的文章索引到 https://github.com/ctripxchuang/dotnetfly 的过程中,发现了一个有意思的评论,截图如下:大概就是说在 Winform 的主线程下执行 Task.Result 会造成死锁,我…

ant 改变表格数据_表格技巧—Excel表格怎么替换数字

在编制报表时,如果把序列号中的某些数字改变,一个个更正,肯定是比重新录一遍还要慢的,如果只是想替换其中的数字,其实可以利用Excel表格自带的查找替换功能,一步到位解决。接下来小编教大家怎么样将一大批的…

程序员的鄙视链

全世界有3.14 % 的人已经关注了数据与算法之美最近这几年在世界各地突然吹起了一股全民写程序的风潮,连即将卸任的美国总统奥巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer&#xff…

基于 registry 搭建 Docker 私有镜像仓库

dockerhub: https://registry.hub.docker.com/_/registry安装命令docker run -p 5000:5000 -d -v /opt/registry:/opt/registry --restart always --name myregistry registry参数介绍:•-p 容器的端口映射,这里绑定 5000•-d 后台运行容器•-v 挂载主机…

BBSXP论坛手工得到用户md5密码的方法

07年发表在《***手册》的一篇文章。通过阅读本文,您将了解到:1、一种手工得到两个版本的BBSXP论坛的用户md5密码的方法。2、如何Cookie欺骗。大家都知道BBSXP论坛5.13,5.15版本的blog.asp文件存在注入漏洞,网上也有几种这个漏洞的…

2010C语言添加背景图片_2019级C语言大作业 - 火柴人试炼之地

C语言大作业 - 火柴人试炼之地https://www.zhihu.com/video/1200491618794606592分享19级同学大一上学期用C语言实现的火柴人试炼之地。分步骤代码、图片音乐素材、可执行程序可以从百度网盘下载:链接:https://pan.baidu.com/s/1XelHD8GVnXfR8coAYOAC9w …

基于单TCP连接的高吞吐模型设计

对于服务与服务之间往往需要高效的吞吐的信息交互,但在绝大部分服务应用中为了实现高吞吐交互都是基于连接池模式,即通过多个TCP连接来提高吞吐量,这种设计完全是通过增加IO的读写量来实现高效吞吐。如果能减少连数和降低IO量(合并…

程序员8大终极杀器,你get了几个?

全世界有3.14 % 的人已经关注了数据与算法之美经常有同学问:作为程序员,终极杀器是什么?其实有大佬早已回答过:持续学习,开阔视野才是程序员的终极杀器!基于此,给大家一个建议:不妨多…

winserver2016 401您无权使用所提供的凭据查看此目录或页面_不用找了,30分钟帮你搞定使用 Spring Cloud 和 Docker 轻松构建微服务架构!...

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]【编者的话】如何使用Spring Boot、Spring Cloud、Docker和Netflix的一些开源工具来构建一个微服务架构。本文通过使用Spring Boot、Spring Cloud和Docker构建的概念型应用示例,提供了了解常见的微服务架构模式…

女朋友掉水里,各类程序猿怎么救?

全世界有3.14 % 的人已经关注了数据与算法之美前天发了一篇有趣的文章《如果辅导员掉进水里,各个专业的学生将会如何解救?》那么,如果程序猿的女朋友落水了,他们会怎么救呢?不会像在校的计算机学院的学生那样“找跟网线…

联机分析的列式数据库 clickHouse

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。在传统的行式数据库系统中,数据按如下顺序存储:RowWatchIDJavaEnableTitleGoodEventEventTime#0893543506621Investor Relations12016-05-18 05:19:20#1903295099580Contact us12016-05-…

网管小王的工具包

我是一名网管,工作主要是维护单位的网络线路和电话线路,今天闲来没事,把工具包中的工具show一下吧。笔记本电脑打线器,用来维修模块和打线用的两根长短不同的网线和一根电话线螺丝刀,什么扁口,十字花&#…

.NET之生成数据库全流程

开篇语本文主要是回顾下从项目创建到生成数据到数据库(代码优先)的全部过程。采用EFCore作为ORM框架。本次示例环境:vs2019、net5、mysql创建项目本次事例代码是用过vs2019创建的ASP.NET Core Web API项目可以通过可视化界面创建或者通过命令行创建dotnet new webap…

进军人工智能,数学基础很重要?

随着科技的快速发展,人工智能的重要性日渐显现。对于大多数新手来说,弄清楚入门人工智能需要哪些数学基础、需要熟悉什么框架等,都至关重要。机器学习是一个异常丰富的研究领域,有大量未解决的问题:公正、可解释性、易…

修改正文中参考文献标注_论文写作中怎样正确插入参考文献,引用文献如何标注?...

论文写作中怎样正确插入引文文献,引用文献如何标注?不管是大学毕业生还是期刊/评职称的我们在面对撰写论文时,参考文献的引用是必不可少的。参考文献的引用可以给论文增添很多的光彩。正确的在论文中引用参考问下你会在论文编写的同时省去很大…

.Net之多语言配置

开篇语首先非常感谢各位朋友或技术爱好者的关注。介绍支持多语言使网站可以覆盖更广泛的受众。ASP.NET Core 提供的服务和中间件可将网站本地化为不同的语言。本次示例环境:vs2019、net5配置无需引用Nuget包即可实现以下功能。注入容器services.AddLocalization(t &…

21张GIF动图让你秒懂数学原理

全世界有3.14 % 的人已经关注了数据与算法之美数学是很难的科学,但因为它是科学家用数学来解释宇宙的语言,我们无可避免的要学习它。看看下面的这些GIF动图,它们提供了视觉的方式来帮助你理解各种数学技巧。推荐阅读《12堂魔力数学课》。1.椭…