请教下485通讯的问题

2019-08-13 21:51发布

485通讯 用单片机与PC通讯,PC端串口助手可以接受到信号;但通过串口助手给单片机发送数据,单片机却接收不到,用示波器看了下485发送数据到单片机的引脚,数据信号电压只有500mV左右
请问这个电压太小是不是导致单片机接收不到串口助手发出的数据?
单片机用的STM32F103,使用的串口2,max3485芯片
求大神解惑啊!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
守候ocean
2019-08-15 02:32
ADS1993 发表于 2017-8-3 15:17
上个原理图  和   程序 截图 看看
[mw_shl_code=applescript,true]int main(void)
{       
        u8 i,t;
        u8 g=0;
        u8 k=1;
        u16 n;
        u8 mcb_dat_in[70];//接收采集板回测试板数据存储数组
        u8 mcb_dat_out[14];//测试板发出要数指令数组
        u8 buf[10];
//        TIM3_Int_Init(1999,7199);
        delay_init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        LED_Init();
        WATERCOUNT_Init();
        RS485_Init(2400);
        for(i=0;i<150;i++)
        {
                cjb_buf=0;//采集板数据缓冲区清零
        }
        while(1)
        {
                /*//串口发送程序
            buf[0] =0x30;
                buf[1] =0x31;
                buf[2] =0x32;
            buf[3] =0x33;
                buf[4] =0x34;
                buf[5] =0x36;
                buf[6] =0x37;
                buf[7] =0x38;
            buf[8] =0x39;
                buf[9] =0x40;
               
                RS485_TX_EN=1;                        //设置为发送模式
               
               
                for(i=0;i<10;i++)
                {       
                       
                    USART_SendData(USART2,buf);

                        while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET);
                }
                while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET);
                */
       
               
                LED0 = 0;
                delay_ms(500);

        //RS485_TX_EN=0;           //设置为接收模式
               
                LED0 = 1;
                delay_ms(500);[/mw_shl_code]

一周热门 更多>