找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4703|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

STC8單片機設(shè)置485通訊不了,是怎么回事,有人遇到過么?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:415338 發(fā)表于 2021-7-19 21:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
5黑幣
//#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, 下載次數(shù): 103)

單片機發(fā)送出來的數(shù)據(jù)經(jīng)過485

單片機發(fā)送出來的數(shù)據(jù)經(jīng)過485
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2021-7-20 09:27 | 只看該作者
先證明硬件是好的。
回復(fù)

使用道具 舉報

板凳
ID:954170 發(fā)表于 2021-7-20 12:52 | 只看該作者
STC8系列的MCU,串口發(fā)送端(比如P3.1)需要以下3個設(shè)置之一:
1、設(shè)置為推挽輸出。
2、設(shè)置為弱上拉輸出(就是默認(rèn)的準(zhǔn)雙向口),打開內(nèi)部額外的上拉電阻(3.7K)。
3、設(shè)置為弱上拉輸出(就是默認(rèn)的準(zhǔn)雙向口),外部加上拉電阻。

正如一些朋友說的,有串口通訊的MCU我都基本都用外部晶振(除非不支持),串口加上拉電阻。
回復(fù)

使用道具 舉報

地板
ID:305386 發(fā)表于 2021-7-20 13:32 | 只看該作者
我建議你買多一份來備用,我們也不知道你這個是不是壞了的器件。
回復(fù)

使用道具 舉報

5#
ID:415338 發(fā)表于 2021-7-21 09:00 | 只看該作者
昨天自己已解決,代碼沒問題
回復(fù)

使用道具 舉報

6#
ID:236035 發(fā)表于 2021-7-22 08:59 | 只看該作者
請補充問題原因和解決方法。
回復(fù)

使用道具 舉報

7#
ID:798631 發(fā)表于 2021-7-22 09:16 | 只看該作者
先查硬件 再查軟件設(shè)置  波特率  奇偶校驗  等設(shè)置都需要一致  才會調(diào)通   
回復(fù)

使用道具 舉報

8#
ID:955467 發(fā)表于 2021-7-22 09:38 | 只看該作者
先檢查單片機的UART輸出有沒有信號, 有的話再檢查TTL轉(zhuǎn)RS485的前端芯片
回復(fù)

使用道具 舉報

9#
ID:507641 發(fā)表于 2021-7-22 22:20 | 只看該作者
應(yīng)該與下載時選的晶源有關(guān)
回復(fù)

使用道具 舉報

10#
ID:99525 發(fā)表于 2022-5-25 15:35 | 只看該作者
這種問題通常都是串口設(shè)置不匹配。
回復(fù)

使用道具 舉報

11#
ID:398219 發(fā)表于 2022-5-29 21:10 | 只看該作者
我一般用487芯片,來轉(zhuǎn)換,發(fā)送數(shù)據(jù)時程序中要對487芯片的2個IO同時拉高,然后在拉低接數(shù)據(jù)
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表