RS485发送过程中的问题

2019-07-20 21:48发布

新手刚上路,这么写不知道为什么上位机接收不到。
#include "sys.h"
#include "delay.h"
#include "rs485.h"
#include "led.h"

u8 send_data[] = {"hello !"};

int main(void)
{
        int len;
        len = sizeof(send_data);
       
        delay_init(168);
        led_init();
        RS485_Init(9600);
       
        while(1)
        {
                RS485_Send_Data(send_data,len);
                led0 = !led0;
                delay_ms(1000);
        }
}

除此之外还有一个疑问,就是当我把教学例程里面的lcd_init或者usart_init全注释掉之后,也是不能发送,上位机接收不到。
int main(void)
{
        u8 key;
        u8 i=0,t=0;
        u8 cnt=0;
        u8 rs485buf[5];
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);   
        uart_init(115200);
       
        LED_Init();                                       
//         LCD_Init();                                        //LCD3õê¼»ˉ
        KEY_Init();                                   
        RS485_Init(9600);               
//         POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
//        LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
//        LCD_ShowString(30,70,200,16,16,"RS485 TEST");       
//        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
//        LCD_ShowString(30,110,200,16,16,"2014/5/7");       
//        LCD_ShowString(30,130,200,16,16,"KEY0:Send");            //ÏÔê¾ìáê¾DÅÏ¢               
//
//         POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«          
//        LCD_ShowString(30,150,200,16,16,"Count:");                          //ÏÔê¾μ±Ç°¼ÆêyÖμ       
//        LCD_ShowString(30,170,200,16,16,"Send Data:");                //ìáê¾·¢ËíμÄêy¾Y       
//        LCD_ShowString(30,210,200,16,16,"Receive Data:");        //ìáê¾½óêÕμ½μÄêy¾Y               
//                                                                           
        while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        for(i=0;i<5;i++)
                        {
                                rs485buf[i]=cnt+i;
//                                LCD_ShowxNum(30+i*32,190,rs485buf[i],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[i],3,16,0X80);       
                }
                t++;
                delay_ms(10);
                if(t==20)
                {
                        LED0=!LED0;
                        t=0;
                        cnt++;
//                        LCD_ShowxNum(30+48,150,cnt,3,16,0X80);       
                }                  
        }   
}


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