欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC8單片機設置485通訊不了,是怎么回事,有人遇到過么? [打印本頁]

作者: 遠小劉    時間: 2021-7-19 21:50
標題: STC8單片機設置485通訊不了,是怎么回事,有人遇到過么?
//#include <reg51.h>
////#include <absacc.h>
#include<stc8h.h>
#define uchar unsigned char
#define uint  unsigned int
//#define leng 8
//uchar idata buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
////uchar idata buf[8]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
uchar Buffer =0x01;

////sbit RS485DIR=P2^0;
sbit RS485DIR = P3^2;
/************延時程序************/
void delay(uchar k)
    {
        uchar j;
        while((k--)!=0)           
                {
                for(j=0;j<125;j++)
                        {;}
                }
    }
void delayus(uchar k)
    {

        while(k--) ;         

    }
void init(void)
{
    TMOD=0x20;                 
    TH1=0xe8;
    TL1=0xe8;
    PCON=0x00;               
    TR1=1;                  
    SCON=0x90;              
}                          
void send1()
{   
//     RS485DIR=1;
        RS485DIR=0;
        delayus(5);
     SBUF = Buffer;
       while(TI==0);
       TI=0;
       
}

//void send2(uchar *As_Buffer,uchar As_Length)
//{   
//     RS485DIR=1;
//        while(As_Length--)
//        {
//       SBUF = *As_Buffer;
//       while(TI==0);
//       TI=0;
//           As_Buffer++;
//        }
//        delayus(5);
//         RS485DIR=0;
//}


void main(void)
{
    P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
        init();       
    while(1)
    {
                send1();
    }
}


51hei圖片_20210719214835.jpg (385.93 KB, 下載次數: 103)

單片機發送出來的數據經過485

單片機發送出來的數據經過485

作者: yzwzfyz    時間: 2021-7-20 09:27
先證明硬件是好的。
作者: 軒轅頂托    時間: 2021-7-20 12:52
STC8系列的MCU,串口發送端(比如P3.1)需要以下3個設置之一:
1、設置為推挽輸出。
2、設置為弱上拉輸出(就是默認的準雙向口),打開內部額外的上拉電阻(3.7K)。
3、設置為弱上拉輸出(就是默認的準雙向口),外部加上拉電阻。

正如一些朋友說的,有串口通訊的MCU我都基本都用外部晶振(除非不支持),串口加上拉電阻。
作者: dfdfuhuh    時間: 2021-7-20 13:32
我建議你買多一份來備用,我們也不知道你這個是不是壞了的器件。
作者: 遠小劉    時間: 2021-7-21 09:00
昨天自己已解決,代碼沒問題
作者: ly1972001    時間: 2021-7-22 08:59
請補充問題原因和解決方法。
作者: design003    時間: 2021-7-22 09:16
先查硬件 再查軟件設置  波特率  奇偶校驗  等設置都需要一致  才會調通   
作者: scsi    時間: 2021-7-22 09:38
先檢查單片機的UART輸出有沒有信號, 有的話再檢查TTL轉RS485的前端芯片
作者: SURUBU1976    時間: 2021-7-22 22:20
應該與下載時選的晶源有關
作者: 雪玉寐影    時間: 2022-5-25 15:35
這種問題通常都是串口設置不匹配。
作者: herui2128    時間: 2022-5-29 21:10
我一般用487芯片,來轉換,發送數據時程序中要對487芯片的2個IO同時拉高,然后在拉低接數據




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1