野火 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)
用错宏了,哎
移植官方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