ToB企服应用市场:ToB评测及商务社交产业平台
标题:
STM32学习(六 )
[打印本页]
作者:
羊蹓狼
时间:
2025-1-4 15:21
标题:
STM32学习(六 )
串口初始化IO引脚
串口的引脚在哪里
串口可以使用GPIO_InitTypeDef结构体和GPIO_Init()函数举行初始化
USART_InitTypeDef USART_InitStruct;//建立串口结构体
USART_InitStruct.USART_BaudRate = 115200;//波特率115200
USART_InitStruct.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;//双向传输模式
USART_InitStruct.USART_WordLength = USART_WordLength_8b;//8位数据位
USART_InitStruct.USART_Parity = USART_Parity_No;//无校验
USART_InitStruct.USART_StopBits = USART_StopBits_1;//1位停止位
USART_Init(USART1,&USART_InitStruct);
复制代码
看芯片的引脚的情况没有明确标注了Tx、Rx引脚。
串口引脚有哪几种类型
串口通讯(USART)的IO引脚主要包罗TX(发送)、RX(接收)、CTS(扫除发送)、RTS(哀求发送)等类型。以下是对这些引脚类型及其功能和用途的详细表明:
TX(发送)引脚
:
功能
:用于发送数据。
用途
:将微控制器的数据通过串口发送到外部设备,如另一个微控制器、计算机或串口通讯模块。
RX(接收)引脚
:
功能
:用于接收数据。
用途
:从外部设备接收数据到微控制器。
CTS(扫除发送)引脚
(可选):
功能
:用于流量控制,当外部设备准备好接收数据时,通过CTS引脚关照微控制器可以发送数据。
用途
:在需要硬件流控制的应用中使用,以制止数据丢失或溢出。
RTS(哀求发送)引脚
(可选):
功能
:用于流量控制,当微控制器准备好发送数据时,通过RTS引脚关照外部设备可以接收数据。
用途
:同样在需要硬件流控制的应用中使用。
Ck 引脚
(可选):
功能
:CK引脚在同步通讯模式下用作时钟信号线,为数据传输提供时钟同步。通过与数据信号线(如TX和RX)的配合,CK引脚可以确保数据的准确传输。
用途
:在同步通讯模式下,CK引脚用于提供时钟信号,使得发送方和接收方可以或许按照相同的时钟节奏举行数据传输,从而确保数据的准确性和同步性。
通用和复用功能
串口就是所谓的复用模式之一。我们查找芯片厂家文档中的重映射表可以得到
Tx对应的是PA9
,
Rx对应的是PA10
。重映射后
Tx对应的是PB6,Rx对应的是PB7。
复用映射
重映射
复用和重映射引脚表示
如何设置引脚参数
模式和最大速度
当我们知道了复用的相干引脚,在编程中我们如何确定引脚的模式和最大速度
解决的方法是查找IO配置表
表中显示输出使用推挽复用模式,输入选用输入浮空或输入上拉,保举使用输入上拉
全双工(Full Duplex):全双工是指通讯设备可以同时举行发送和接收数据的本领。
支持同时举行双向数据传输。
通常需要全双工通讯的物理介质,如双绞线、光纤等。
在STM32单片机中,USART模块可以配置为全双工模式,允许同时举行数据的发送和接收。
半双工(Half Duplex):半双工是指通讯设备在同一时间内只能举行发送或接收数据,不能同时举行。
数据传输是单向的,但在差别时间可以切换方向。
常见的半双工通讯设备有对讲机、某些无线通讯模块等。
在STM32单片机中,固然USART模块本身支持全双工,但可以通过软件控制实现半双工通讯。
同步(Synchronous):同步通讯是指发送方和接收方使用相同的时钟信号举行数据传输,以确保数据的准确性和同步性。
需要时钟信号来同步数据传输。
数据传输速度通常较快,且误码率较低。
在STM32单片机中,USART模块可以配置为同步模式,使用CK引脚提供时钟信号。
硬件流控(Hardware Flow Control):硬件流控是指通过硬件信号(如RTS/CTS)来控制数据传输的流量,以制止数据丢失或溢出。
使用专门的硬件信号举行流量控制。
可以有用地管理数据传输的速率和流量。
在STM32单片机中,USART模块支持硬件流控功能,可以通过配置RTS和CTS引脚来实现。
编写代码(PA9\PA10)
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA,&GPIO_InitStruct);
复制代码
编写代码(PA6\PA7)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启AFIO模块时钟
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);//设置重载映射
GPIO_InitTypeDef GPIO_InitStruct;
// 输出推挽
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
//输入浮空 输入上拉
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA,&GPIO_InitStruct);
复制代码
GPIO_PinRemapConfig函数是STM32单片机中用于配置GPIO引脚重映射的功能函数。通过该函数,可以将某些外设的功能引脚从默认的GPIO引脚重映射到其他可用的GPIO引脚上,从而提供更大的机动性和方便性。
GPIO_PinRemapConfig函数允许用户根据特定的需求,将外设(如USART、SPI、I2C、TIM等)的功能引脚重映射到其他的GPIO引脚上。这在某些应用场景下非常有用,比如当默认的引脚被其他功能占用,或者为了优化布板和布线时。
GPIO_PinRemapConfig函数通常担当两个参数:
重映射选项
:这是一个枚举或宏界说,指定了要举行的重映射操作。比方,可能有一个选项用于将USART1的TX引脚从默认的PA9重映射到PB6。
启用或禁用
:这是一个布尔值(通常使用ENABLE或DISABLE宏界说),指定是启用还是禁用该重映射。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4