F4的485通信问题

2019-07-20 21:23发布

我想知道原子哥的485实验中lcd的初始化函数和485有没有联系,我看了下,貌似没有,可是我在移植的时候去掉这个初始化就不行,加上就可以通信了。可以接受到,但是不会发送出来,而加上就有发送出的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
夜愿晨城
2019-07-22 12:41
xuyaqi 发表于 2016-4-26 09:50
看来你改的不仅LCD部分,485部分也有改动。开始看原程序能否正常运行,然后少改一些再试,每次都应该有备份 ...

我又试了下原子哥的程序,别的完全不动,就注释掉lcd初始化并且将while(1)这个死循环做以下改动:while(1)
        {
        /*        key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        for(i=0;i<5;i++)
                        {
                                rs485buf=cnt+i;
                                LCD_ShowxNum(30+i*32,190,rs485buf,3,16,0X80);
                        }
                        RS485_Send_Data(rs485buf,5);                                                                          
                }                 
                RS485_Receive_Data(rs485buf,&key);
                if(key)
                {
                        if(key>5)key=5;
                        for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,230,rs485buf,3,16,0X80);       
                                 USART_SendData(USART1,rs485buf);
                }
                t++;
                delay_ms(10);
                if(t==20)
                {
                        LED0=!LED0;
                        t=0;
                        cnt++;
                        LCD_ShowxNum(30+48,150,cnt,3,16,0X80);       
                }        */

   USART_SendData(USART2,'a');
         while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);

        }   
当然此时485是设置为输出的,检测不到输出,但是我把注释掉的lcd加回来就OK
了。

一周热门 更多>