野火 RTT 改的 三个串口 dma 接收 接收后处理数据,但是串口一直不能正常发送数据

野火 RTT 改的 三个串口 dma 接收 接收后处理数据,但是串口一直不能正常发送数据

Uart2 Uart3 都有问题,请赐教,确实没有分了
**
调用 **

RS485_SEND_EN(ON);                        
                   rt_thread_delay(200);  
                    Usart_SendString(RS485_USARTx,Uart3Send);
                    Usart_SendCharCount(RS485_USARTx,Uart3Send,10);

一直停在这里

while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET)

1个回答

用错宏了,哎
移植官方STM32虚拟串口程序,串口通信死在 

 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

仿真发现USART1时钟味使能。。。

使能时钟后仿真,USART1寄存器有反应,发送数据是仍死在

 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

上网寻找答案无果。怀疑引脚未配置造成。

配置

    GPIO_InitTypeDef  GPIO_InitStructure;
   
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  /* Configure USB pull-up pin */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
故障依旧

检查发现忘记

    USART_Cmd(USART1, ENABLE);

了。。

加上就OK

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问