USART2时钟配置代码
时间: 2024-04-14 18:22:59 浏览: 15
以下是配置USART2时钟的代码示例:
```c
// 使能USART2时钟
RCC->APB1LENR |= RCC_APB1LENR_USART2EN;
// 配置USART2的时钟源为PCLK1
RCC->CCIPR &= ~RCC_CCIPR_USART2SEL;
RCC->CCIPR |= RCC_CCIPR_USART2SEL_0;
// 配置USART2的时钟分频系数为1
USART2->GTPR &= ~USART_GTPR_PSC;
// 配置USART2的时钟使能
USART2->CR1 |= USART_CR1_UE;
```
这段代码的作用是使能USART2的时钟,并将时钟源配置为PCLK1,时钟分频系数配置为1,最后使能USART2的时钟。[^1]
相关问题
stm32的usart初始化配置代码
以下是一个基本的STM32 USART初始化配置的代码示例:
```c
#include "stm32f4xx.h"
void USART2_Init(void)
{
// 使能USART2和GPIOA的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
// 将USART2的引脚配置为复用功能
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); // USART2_TX
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); // USART2_RX
// 配置USART2的TX引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置USART2的RX引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置USART2
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART2, &USART_InitStructure);
// 使能USART2
USART_Cmd(USART2, ENABLE);
}
```
这段代码是用来初始化USART2,其中配置了波特率为9600,数据位长度为8位,停止位为1位,无校验位,无硬件流控制,并使能了接收和发送模式。你可以根据需要进行修改。此外,该代码假设你的USART2引脚连接在GPIOA的Pin2和Pin3上,请根据实际情况进行修改。
stm32f103的usart2寄存器配置
根据引用\[1\]中的代码,我们可以找到GPIOA、GPIOB和GPIOC的配置寄存器。而根据引用\[2\]中的代码,我们可以找到RCC_APB2ENR寄存器,用于使能GPIOA、GPIOB和GPIOC的外设时钟。因此,我们可以使用这些寄存器来配置STM32F103的USART2寄存器。
具体的配置步骤如下:
1. 首先,需要使能USART2的外设时钟。根据引用\[2\]中的代码,我们可以使用RCC_APB2ENR寄存器来使能USART2的时钟。具体的代码为RCC_APB2ENR |= 1 << 17;。
2. 接下来,需要配置USART2的引脚。根据引用\[1\]中的代码,我们可以使用GPIOA、GPIOB和GPIOC的配置寄存器来配置对应的引脚。具体的代码为:
- 配置USART2的TX引脚:GPIOA_CRL |= 0x0B << 8; // 将PA2配置为复用推挽输出
- 配置USART2的RX引脚:GPIOA_CRL |= 0x04 << 12; // 将PA3配置为浮空输入
3. 最后,需要配置USART2的其他寄存器,如波特率、数据位、停止位等。这些配置根据具体的需求而定,可以参考STM32F103的参考手册来进行配置。
综上所述,配置STM32F103的USART2寄存器的步骤包括使能外设时钟、配置引脚和配置其他寄存器。
#### 引用[.reference_title]
- *1* *2* *3* [STM32F103C8T6寄存器简单应用(流水灯)](https://blog.csdn.net/m0_58406663/article/details/127250982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]