找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 10015|回復(fù): 11
收起左側(cè)

stc15f2k60s2看了手冊用了示例程序也無法使用串口通信

[復(fù)制鏈接]
ID:116278 發(fā)表于 2016-4-26 19:56 | 顯示全部樓層 |閱讀模式
#include"C:\Keil\C51\INC\STC\STC15F2K60S2.H"
void SerialIni(){
    SCON &= 0x2E;  //先對需要設(shè)置的位進行清零 0010 1110 因為SCON所有位都是用于設(shè)置串行口1,所以這句可省略。
    SCON = 0x50;   /* SM0/FE | SM1 | SM2 | REN | TB8 | RB8 | TI | RI 設(shè)置串行口的工作方式1(SM0 SM1  0 1)即8位可變波特率方式;允許接收)*/
    AUXR &= 0xBE;  //先對需要設(shè)置的位進行清零 1011 1110
    AUXR |= 0x00;    /* T0x12 | T1x12 | UART_M0x6 | T2R | T2_C/T(T上畫) | T2x12 | EXTRAM | S1ST2 定時器1時鐘為Focs/12,即12T;串口1選擇定時器1為波特率發(fā)生器。S1ST2:串行口1波特率發(fā)生器選擇位。0:選擇定時器1作為串行口1波特率發(fā)生器。 1:選擇定時器2作為串行口1的波特率發(fā)生器,此時定時器1得到釋放,可以作為獨立的定時器使用。*/
    TMOD &= 0x0F;        //先清零定時器1的設(shè)置(高4位設(shè)置定時器1,低4位設(shè)置定時器0)
    TMOD |= 0x20;           /* GATE | C/T(T上畫) | M1 | M0 | GATE | C/T(T上畫) | M1 | M0 (定時器工作方式2)使用定時器1作為波特率發(fā)生器。*/
    TH1 = 0xfd;                 //8位自動重裝方式,TH1用于重置TL1初值。2的SMOD次方/32*(定時器1的溢出率或定時器2的溢出率)
    TL1  = 0xfd;                 //晶振11.0592MHz,設(shè)置波特率為9600bps。SMOD屬于PCON寄存器,為1時,波特率翻倍。
    TR1=1;                         //定時器1啟動
    ES = 1;                         //開放串口中斷
    EA = 1;                         //開放CPU中斷
}

void main(void)
{
    SerialIni();                    //運行串口初始化函數(shù)
    while(1){
}                                //等待中斷()
}

void Uart2(void) interrupt 4 using 1
{
    unsigned char mydata;
    if(RI)                           //如果是接收中斷
    {
        RI=0;
        mydata = SBUF;    //將接收緩沖區(qū)的數(shù)據(jù)保存到mydata變量中
        SBUF = ~mydata; //將接收到的數(shù)據(jù)按位取反后發(fā)回
    }
    else                           //如果是發(fā)送中斷,將TI清0
        TI = 0;
}



完全無效。串口接的3.0/3.1;
求大神教育

回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2016-4-26 20:28 | 顯示全部樓層
電路呢?是和51通信還是PC?使用了232芯片還是轉(zhuǎn)USB芯片?

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:116278 發(fā)表于 2016-4-26 20:43 | 顯示全部樓層
ahshmj 發(fā)表于 2016-4-26 20:28
電路呢?是和51通信還是PC?使用了232芯片還是轉(zhuǎn)USB芯片?

電路是最小系統(tǒng),可以下程序。串口是usb芯片

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2016-4-26 21:18 | 顯示全部樓層
把P3.0和P3.1對調(diào)一下試一試。USB轉(zhuǎn)換芯片的輸出應(yīng)對單片機的輸入。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:116278 發(fā)表于 2016-4-26 21:33 | 顯示全部樓層
#include"C:\Keil\C51\INC\STC\STC15F2K60S2.H"
#define uchar unsigned char
uchar x=0;
void SerialIni(){
PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時器1時鐘為Fosc,即1T
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
        TMOD &= 0x0F;                //清除定時器1模式位
        TMOD |= 0x20;                //設(shè)定定時器1為8位自動重裝方式
        TL1 = 0xDC;                //設(shè)定定時初值
        TH1 = 0xDC;                //設(shè)定定時器重裝值
        ET1 = 0;                //禁止定時器1中斷
        TR1 = 1;                //啟動定時器1                     //開放CPU中斷
}

void main(void)                                  
{
    SerialIni();
       
        SBUF=21;                    //運行串口初始化函數(shù)
    while(1){
         if(TI)                           //如果是接收中斷
    {
        TI=0;
       
                 }
         if(RI)
         {RI=0;
       
          ;
          ;
          ;
          ;

          ;
          SBUF=x;
         }
}
}
可以發(fā)送但不能接收執(zhí)行,為什么

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:116278 發(fā)表于 2016-4-26 22:42 | 顯示全部樓層
ahshmj 發(fā)表于 2016-4-26 21:18
把P3.0和P3.1對調(diào)一下試一試。USB轉(zhuǎn)換芯片的輸出應(yīng)對單片機的輸入。

大神幫幫我
回復(fù)

使用道具 舉報

ID:97438 發(fā)表于 2016-4-27 09:39 | 顯示全部樓層
建議樓主先看懂程序吧。。。
回復(fù)

使用道具 舉報

ID:116278 發(fā)表于 2016-4-27 13:04 | 顯示全部樓層
luoluoluo136 發(fā)表于 2016-4-27 09:39
建議樓主先看懂程序吧。。。

謝謝,問題解決了,重啟了電腦(ಥ_ಥ)
回復(fù)

使用道具 舉報

ID:116278 發(fā)表于 2016-4-27 13:06 | 顯示全部樓層
謝謝,問題解決了,電腦串口程序有問題,重啟了電腦就好了

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:120672 發(fā)表于 2018-9-29 18:41 | 顯示全部樓層
沒開總中斷EA和串口中斷ES
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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