更改STM32上的硬件流控制引脚

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改STM32上的硬件流控制引脚相关的知识,希望对你有一定的参考价值。

我一直在阅读有关串行通信的握手和硬件流控制,我有一个问题,我似乎无法找到答案。

如果为cubeMX上的串行端口设置硬件流控制,它将设置所需的引脚。我知道您也可以使用替代引脚,这可以通过cubeMX完成。

我的问题是,您是否可以通过使用不同的引脚手动设置硬件流量控制,或者您是否必须使用实现的引脚?

我使用的是STM32F207ZETx,我使用的是USB和串口 - 但是当使用USB外设时,它会阻止我需要的USART1的硬件流控制引脚,我需要为我的项目进行硬件流控制!用于硬件流控制的备用引脚也已经使用,所以我有点腌渍。

答案

我的问题是,您是否可以通过使用不同的引脚手动设置硬件流量控制,或者您是否必须使用实现的引脚?

您可以自己在软件中进行硬件流控制,事实上它很简单。

USART1_RTS是输出引脚。当USART1准备好接收数据时,它被设置为/高。 USART1_CTS是输入引脚。另一端在准备好接收数据时将其设置为高,而在不准备接收数据时将其设置为低。

假设您一次发送和接收一个字符,并使用两个GPIO引脚用于USART1_RTS和USART1_CTS而不是硬件支持。

通常,您将USART1_RTS保持为高电平。接收数据时,如果接收缓冲区用完,则将USART1_RTS设置为低电平。当您在接收缓冲区中腾出更多空间时,将USART1_RTS设置为高电平。 (如果您的缓冲方案不能用完接收缓冲区,则可以将RTS线绑定为高电平。)

在发送每个字符之前,检查USART1_CTS是否为高电平。如果它很低,则不发送数据,而是等待USART1_CTS变为高电平。

而已。

以上是关于更改STM32上的硬件流控制引脚的主要内容,如果未能解决你的问题,请参考以下文章

stm32 复位问题

STM32的RS485控制

[架构之路-18]:目标系统 - 硬件平台 - 案例1 - 单片机MCU STM32 芯片的工作原理与启动流程

嵌入式分享合集36

STM32低功耗总结

基于stm32的智能小车(远程控制避障循迹)