OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2675|回复: 2

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

[复制链接]

6

主题

13

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-9-16
在线时间
13 小时
发表于 2017-10-20 22:12:33 | 显示全部楼层 |阅读模式
1金钱
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;
                }
        }

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2017-6-10
在线时间
39 小时
发表于 2017-10-20 22:12:34 | 显示全部楼层
回复

使用道具 举报

10

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2017-8-4
在线时间
45 小时
发表于 2017-10-26 17:23:25 | 显示全部楼层
把库函数里面的发送接收函数封装起来,再加上485的片选信号
捕获.PNG
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 04:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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