STM32 UART 初始化

作者:阿拉丁神丢

转自:http://blog.sina.com.cn/s/blog_6035432c0100xt8c.html


因为想用串口3,但配置了很长时间还是不行,为什么UART1,2行,UART3就不行的,最后原因是:使能GPIOB,端口时钟  USART3时钟我只使能了UART3时钟,没有使能UART3所在端口GPIOB的时钟,所以导致无法正常启动串口3。

 

下面具体写下串口配置过程:
  1:系统时钟初始化,包括系统时钟和要开放的IO口和串口的时钟配置。
  2:IO口初始化,包括引脚,速率,输入输出模式等。
  3:配置USART的波特率,数据位等。

 


对应的3个函数,相当有条理

/--------------——————---------------------------------------------------------------------/

void  RCC_Configuration(void)

{

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); //使能UART3所在GPIOB的时钟

       RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); //串口时钟配置

}

 

void GPIO_Configuration(void)
{
      GPIO_InitTypeDef GPIO_InitStructure;

      // Configure USART3 Tx (PB.10) as alternate function push-pull 
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOB,   &GPIO_InitStructure);

      // Configure USART3 Rx (PB.11) as input floating 
      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;          
      GPIO_Init(GPIOB, &GPIO_InitStructure);

}

 

void USART_Configuration(void)

{

      USART_InitStructure.USART_BaudRate = 38400;
      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(USART3, &USART_InitStructure);
      // 使能 USART3
      USART_Cmd(USART3, ENABLE);

}

 


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32初始化UART3的步骤如下: 1. 配置GPIO引脚:首先,需要配置UART3的引脚作为串口功能。根据具体的芯片型号和引脚分配,将相应的引脚配置为UART3的功能。 2. 使能UART3时钟:通过使能相应的时钟来启用UART3模块。可以使用RCC_APB1PeriphClockCmd函数来使能UART3的时钟。 3. 配置UART3的工作模式:设置UART3的波特率、数据位、停止位、校验位等参数。可以使用USART_Init函数来配置UART3的工作模式。 4. 使能UART3的发送和接收中断:根据需要,可以使能UART3的发送和接收中断。可以使用USART_ITConfig函数来使能相应的中断。 5. 配置UART3的中断优先级:如果需要使用中断,还需要配置UART3的中断优先级。可以使用NVIC_Init函数来配置中断优先级。 6. 启用UART3:最后,通过调用USART_Cmd函数来启用UART3。 综上所述,STM32 UART3的初始化包括配置GPIO引脚、使能UART3时钟、配置UART3的工作模式、使能UART3的发送和接收中断、配置UART3的中断优先级和启用UART3。 #### 引用[.reference_title] - *1* [stm32初始化三个串口](https://blog.csdn.net/HES_C/article/details/77449321)[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,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32F103RCT6+USART3+UART5初始化代码](https://blog.csdn.net/qq_24835087/article/details/82620231)[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,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值