求助大神,RS485怎么就是通不了

2019-08-11 18:01发布

void USART2_IRQHandler(void)
{       
        if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)//½óêÕÖD¶Ï
        {
                USART_ClearITPendingBit(USART2,USART_IT_RXNE);//Çå3yUSART1ÖD¶Ï′y′|àíλRXNE(RXNE=0)
                if(Revcomp_Flag != 1)
                {
                        if(Receive_Num <= 7)//&#189;óê&#213;·&#214;8×&#214;&#189;úêy&#190;Y oí11×&#214;&#189;úêy&#190;Y
                        {
                                Receive_Buff[Receive_Num] = USART1->DR;
                                Receive_Num++;
                                TIM_Cmd(TIM2, ENABLE);
                                TIM_SetCounter(TIM2, 0);
                                TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);       
                        }
                }
        }               
        //ò&#231;3&#246;-è&#231;1&#251;·¢éúò&#231;3&#246;Dèòa&#207;è&#199;&#229;&#191;&#213;SRμ&#196;ò&#231;3&#246;&#206;&#187;,&#212;ù&#182;áDR&#188;&#196;′&#230;&#198;÷ &#212;ò&#191;é&#199;&#229;3y2&#187;&#182;&#207;è&#235;&#214;D&#182;&#207;μ&#196;&#206;êìa
        if(USART_GetFlagStatus(USART2,USART_FLAG_ORE)!=RESET)
        {
                USART_ClearFlag(USART2,USART_FLAG_ORE);        //&#199;&#229;ò&#231;3&#246;&#206;&#187;
                USART_ReceiveData(USART2);                                //&#182;áDR
        }
}

void Modbus_SendData()
{
    uint8_t i=0;
          u8 res;
          GPIO_SetBits(GPIOD,GPIO_Pin_7);//&#199;D&#187;&#187;&#206;a·¢&#203;í&#196;£ê&#189;
                for(i=0;i<=7;i++)
                {
                          res = Receive_Buff[i];
                         // USART_SendData(USART2,Receive_Num);
                                USART_SendData(USART2,res);
                          while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);//μè′y·¢&#203;ííê3é
                }
                GPIO_ResetBits(GPIOD,GPIO_Pin_7);                //&#196;&#172;è&#207;&#206;a&#189;óê&#213;&#196;£ê&#189;
}


int main(void)
{       
    LED_Init();
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
          USART2_Init();
          TIM3_Init();

          while (1)
                {
                       
      while (Revcomp_Flag == 1)
                        {
                                        
                           Revcomp_Flag = 0x00;//&#189;óê&#213;ò&#187;&#214;&#161;êy&#190;Y±ê&#214;&#190;&#199;&#229;á&#227;
               Modbus_SendData();
                           USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//&#212;êDí&#189;óê&#213;&#214;D&#182;&#207;
                }
        }

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