STM32F407 使用串口2连接CH340,做485通讯,可以发送,但不能接收

2019-07-20 01:40发布

调试的时候,Res初始为0x00,用串口调试工具发送一个‘A’后,值变为0X0A,并且不论发送什么,Res都为0X0A.使用RS485_byte()函数可以正常发送

硬件上连接:485_Rx 和串口2和CH340连接
软件:
main.c
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);                //延时初始化  
        RS485_init(9600);
       
        while(1)
        {       
        }
}

RS485.C

void RS485_byte(u8 d)  //485发送一个字节
{

  RS485_RE_1;
  USART_SendData(USART2, d);
           while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
  USART_ClearFlag(USART2,USART_FLAG_TC );

        RS485_RE_0;
}


void USART2_IRQHandler(void)                        //串口2中断服务程序
{
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
        {
                Res =USART_ReceiveData(USART2);      //(USART2->DR);        //读取接收到的数据
        }
}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。