[STM32] C8T6的USART2怎么回事?

[复制链接]
 楼主| cainiao518 发表于 2022-5-8 20:02 | 显示全部楼层 |阅读模式
初始化后,不能发数据,停在这里:        /* 等待发送数据寄存器为空 */        while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);       

初始化代码如下:

  1. void USART2_Config(void)
  2. {
  3.         GPIO_InitTypeDef GPIO_InitStructure;
  4.         USART_InitTypeDef USART_InitStructure;

  5.         // 打开串口GPIO的时钟
  6.         DEBUG_USART_GPIO_APBxClkCmd(RCC_APB2Periph_GPIOA, ENABLE);
  7.        
  8.         // 打开串口外设的时钟
  9.         DEBUG_USART_APBxClkCmd(RCC_APB1Periph_USART2, ENABLE);

  10.         // 将USART Tx的GPIO配置为推挽复用模式
  11.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  12.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  13.         //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  14.         GPIO_Init(GPIOA, &GPIO_InitStructure);

  15.   // 将USART Rx的GPIO配置为浮空输入模式
  16.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  18.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  19.        
  20.         // 配置串口的工作参数
  21.         // 配置波特率
  22.         USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
  23.         // 配置 针数据字长
  24.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  25.         // 配置停止位
  26.         USART_InitStructure.USART_StopBits = USART_StopBits_1;
  27.         // 配置校验位
  28.         USART_InitStructure.USART_Parity = USART_Parity_No ;
  29.         // 配置硬件流控制
  30.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  31.         // 配置工作模式,收发一起
  32.         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  33.         // 完成串口的初始化配置
  34.         USART_Init(USART2, &USART_InitStructure);
  35.        
  36.         // 串口中断优先级配置
  37.         NVIC_Configuration_u2();
  38.        
  39.         // 使能串口接收中断
  40.         USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);       
  41.        
  42.        
  43.         // 使能串口
  44.         USART_Cmd(USART2, ENABLE);               

  45.   // 清除发送完成标志
  46.         USART_ClearFlag(USART2, USART_FLAG_TC);     
  47. }
怎么回事呢?



您需要登录后才可以回帖 登录 | 注册

本版积分规则

135

主题

1431

帖子

4

粉丝
快速回复 返回顶部 返回列表