请教下485通讯的问题

2019-08-13 21:51发布

485通讯 用单片机与PC通讯,PC端串口助手可以接受到信号;但通过串口助手给单片机发送数据,单片机却接收不到,用示波器看了下485发送数据到单片机的引脚,数据信号电压只有500mV左右
请问这个电压太小是不是导致单片机接收不到串口助手发出的数据?
单片机用的STM32F103,使用的串口2,max3485芯片
求大神解惑啊!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
守候ocean
1楼-- · 2019-08-14 16:26
paulhe 发表于 2017-8-3 15:02
485转232

大神 我用的usb转485  难道是这个问题?
守候ocean
2楼-- · 2019-08-14 18:24
ADS1993 发表于 2017-8-3 15:04
发送数据的同时  用示波器  测量 A B  电压, 看一下  A B  差值

看了 A B压差大概7V左右 又把引脚跟单片机断开了 量了一下 485进单片机的信号还是500mV左右的
ADS1993
3楼-- · 2019-08-14 20:58
守候ocean 发表于 2017-8-3 15:15
看了 A B压差大概7V左右 又把引脚跟单片机断开了 量了一下 485进单片机的信号还是500mV左右的

上个原理图  和   程序 截图 看看
守候ocean
4楼-- · 2019-08-15 00:56
 精彩回答 2  元偷偷看……
守候ocean
5楼-- · 2019-08-15 01:01
ADS1993 发表于 2017-8-3 15:17
上个原理图  和   程序 截图 看看

程序备注有的没改 之前用串口1了 485上下拉电阻和终端电阻加和不加都一样
守候ocean
6楼-- · 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]

一周热门 更多>