找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9280|回復(fù): 18
收起左側(cè)

STC8G1K08單片機(jī)串口通訊無(wú)反應(yīng)

  [復(fù)制鏈接]
ID:140644 發(fā)表于 2021-1-24 16:58 | 顯示全部樓層 |閱讀模式
一個(gè)STC8G1K08  SOP小板子,用到串口控制HMI觸摸屏,
參考STC下載軟件自帶例程,以及
STC實(shí)驗(yàn)板的例程,都無(wú)法接收發(fā)送數(shù)據(jù)。
用USB---TTL下載線可以燒寫(xiě)程序,
串口以外的IO可以定時(shí)輸出脈沖,
就是串口無(wú)反應(yīng),大家有沒(méi)有遇到過(guò)?
回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2021-1-24 17:50 | 顯示全部樓層
回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2021-1-24 21:18 | 顯示全部樓層
STC單片機(jī)串口發(fā)送 不需要while死等  http://www.torrancerestoration.com/bbs/dpj-200927-1.html
回復(fù)

使用道具 舉報(bào)

ID:140644 發(fā)表于 2021-1-24 22:57 | 顯示全部樓層
測(cè)試了好幾天死活出不來(lái),我STC其他芯片挺多,STC15W408 STC15W204 15W1K16SQ IAP系列都有,
串口都可以通訊,就是STC8G1K08  SOP串口不工作,但是程序可以下載,覺(jué)得應(yīng)該是芯片問(wèn)題。
回復(fù)

使用道具 舉報(bào)

ID:807591 發(fā)表于 2021-1-25 08:23 | 顯示全部樓層
說(shuō)明書(shū)仔細(xì)研究一下
回復(fù)

使用道具 舉報(bào)

ID:65956 發(fā)表于 2021-1-25 08:33 | 顯示全部樓層
程序帖出來(lái)看才能幫你分析啊,最主要是下載時(shí)晶振選擇要和例程中寫(xiě)的一樣
回復(fù)

使用道具 舉報(bào)

ID:140644 發(fā)表于 2021-1-25 09:03 | 顯示全部樓層
#include     "reg52.h"
              #include     "intrins.h"
              #define      uint unsigned int
              #define      uchar unsigned char
              sbit         INTPUT1=P5^4;         //啟動(dòng)信號(hào)
              sbit         DOWN=P3^2;             //下降
              sbit         UP=P3^3;                 //上升
              sbit         LED=P5^5;             //EEPROM寫(xiě)指示
              #define      FOSC  11059200UL
              #define      BRT  (65536-FOSC/115200/4)
              sfr          IAP_TPS  =  0xF5;
/************************************/
              void        UartInit()
              {
              SCON = 0x5a;
              T2L = BRT;
              T2H = BRT >> 8;
              AUXR = 0x15;
              }
/************************************/
              void        UartSend(char dat)
              {
              while (!TI);
              TI = 0;
              SBUF = dat;
              }
/************************************/
              void IapIdle()
              {
              IAP_CONTR = 0;  // 關(guān)閉 IAP 功能
              IAP_CMD = 0; // 清除命令寄存器
              IAP_TRIG = 0; // 清除觸發(fā)寄存器
              IAP_ADDRH = 0x80; // 將地址設(shè)置到非 IAP 區(qū)域
              IAP_ADDRL = 0;
              }
/************************************/
              char IapRead(int addr)
              {
              char dat;
              IAP_CONTR = 0x80; // 使能 IAP
              IAP_TPS = 12; // 設(shè)置擦除等待參數(shù) 12MHz
              IAP_CMD = 1; // 設(shè)置 IAP 讀命令
              IAP_ADDRL = addr; // 設(shè)置 IAP 低地址
              IAP_ADDRH = addr >> 8; // 設(shè)置 IAP 高地址
              IAP_TRIG = 0x5a; // 寫(xiě)觸發(fā)命令 (0x5a)
              IAP_TRIG = 0xa5; // 寫(xiě)觸發(fā)命令 (0xa5)
              _nop_();
              dat = IAP_DATA; // 讀 IAP 數(shù)據(jù)
              IapIdle(); // 關(guān)閉 IAP 功能
              return dat;
              }
/************************************/
              void IapProgram(int addr, char dat)
              {
              IAP_CONTR = 0x80; // 使能 IAP
              IAP_TPS = 12; // 設(shè)置擦除等待參數(shù) 12MHz
              IAP_CMD = 2; // 設(shè)置 IAP 寫(xiě)命令
              IAP_ADDRL = addr; // 設(shè)置 IAP 低地址
              IAP_ADDRH = addr >> 8; // 設(shè)置 IAP 高地址
              IAP_DATA = dat; // 寫(xiě) IAP 數(shù)據(jù)
              IAP_TRIG = 0x5a; // 寫(xiě)觸發(fā)命令 (0x5a)
              IAP_TRIG = 0xa5; // 寫(xiě)觸發(fā)命令 (0xa5)
              _nop_();
              IapIdle(); // 關(guān)閉 IAP 功能
              }
/************************************/
              void IapErase(int addr)
              {
              IAP_CONTR = 0x80; // 使能 IAP
              IAP_TPS = 12; // 設(shè)置擦除等待參數(shù) 12MHz
              IAP_CMD = 3; // 設(shè)置 IAP 擦除命令
              IAP_ADDRL = addr; // 設(shè)置 IAP 低地址
              IAP_ADDRH = addr >> 8; // 設(shè)置 IAP 高地址
              IAP_TRIG = 0x5a; // 寫(xiě)觸發(fā)命令 (0x5a)
              IAP_TRIG = 0xa5; // 寫(xiě)觸發(fā)命令 (0xa5)
              _nop_();  //
              IapIdle(); // 關(guān)閉 IAP 功能
              }
/*-----------(1)延時(shí)子程序12MHz 加千百十個(gè)顯示--------*/
               void Delay100ms(uint x)              //
               {
               uint i,j;
               for(i=0;i<x;i++)
               for(j=0;j<11000;j++);
               }
/*************關(guān)所有輸出*******************************/            
               void reset_io()
               {
               P3M0=0X00;
               P3M1=0X00;
               P5M0=0X00;   
               P5M1=0X00;
               DOWN=1;                           //氣缸下降
               UP=1;                             //氣缸上升
               INTPUT1=1;                         //
               }
/************************************/
               void main()
               {
               reset_io();
               UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
                UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
                UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);   
               UP=0;                             //開(kāi)上升
               DOWN=0;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
               UP=1;                             //開(kāi)上升
               DOWN=1;                             //下降
               Delay100ms(20);                    //延時(shí)(10);
               UartInit();
               IapErase(0x1200);
               UartSend(IapRead(0x1200));
               IapProgram(0x1200, 0x12);
               UartSend(IapRead(0x1200));
               while (1)
               {
                UP=0;                             //開(kāi)上升
                Delay100ms(200);                    //延時(shí)(10);   
                UP=1;                             //開(kāi)上升
                Delay100ms(200);                    //延時(shí)(10);   
               }
              }



              #include       "reg52.h"
              #include       "intrins.h"
              #define        FOSC  11059200UL
              #define        BRT  (65536 - FOSC / 115200 / 4)
              bit            busy;
              char           wptr;
              char           rptr;
              char           buffer[16];
              void           UartIsr() interrupt 4
              {
               if (TI)
               {
               TI = 0;
               busy = 0;
               }
               if (RI)
               {
               RI = 0;
               buffer[wptr++] = SBUF;
               wptr &= 0x0f;
               }
              }
              void UartInit()
              {
               SCON = 0x50;
               T2L = BRT;
               T2H = BRT >> 8;
               AUXR = 0x15;
               wptr = 0x00;
               rptr = 0x00;
               busy = 0;
               }

              void UartSend(char dat)
              {
               while (busy);
               busy = 1;
               SBUF = dat;
              }

             void UartSendStr(char *p)
             {
              while (*p)
              {
              UartSend(*p++);
              }
             }

              void main()
              {
               P_SW1=0x00;                       //RXD/P3.0, TXD/P3.1
               P3M0=0;
               P3M1=0;
               P5M0=0;   
               P5M1=0;
               UartInit();
               ES = 1;
               EA = 1;
               UartSendStr("Uart Test !\r\n");
               while (1)
               {
               if (rptr != wptr)
                {
                UartSend(buffer[rptr++]);
                rptr &= 0x0f;
                }
               }
              }


                           #include     "STC8.H"
              sbit         LED = P3^2;
/*------------發(fā)送串口數(shù)據(jù)----------------*/
              void uart1_SendData(unsigned char dat)
              {
              SBUF = dat;
              while (TI == 0);
              TI = 0;
              }
/*------------發(fā)送字符串------------------*/
              void uart1_SendDataFrame(unsigned char *pDat)
              {
               while ((*pDat)!= '\0')
               {
               uart1_SendData(*pDat++);
               }
              }
/*
上位機(jī)發(fā)送0x55,LED亮,上位機(jī)發(fā)送0xAA,LED滅。
然后下位機(jī)收到正確的命令后,作出相對(duì)應(yīng)的相應(yīng)。
*/
              void UartIsr()interrupt 4
              {
                unsigned char data l_RevDat = 0;
                if (RI)
                {
                RI = 0; //清除RI位
                l_RevDat = SBUF;
                 if (0x55 == l_RevDat)
                 {
                 LED = 0;//LED亮
                 uart1_SendDataFrame("LED已點(diǎn)亮\r\n");
                 }
                 else if (0xAA == l_RevDat)
                 {
                 LED = 1;//LED滅
                 uart1_SendDataFrame("LED已熄滅\r\n");
                 }
                 else
                 {
                 uart1_SendDataFrame("指令錯(cuò)誤\r\n");
                 }
                }
               }
/************************************/
              void main(void)
              {
               P3M0=0;
               P3M1=0;
               P5M0=0;   
               P5M1=0;
//使用內(nèi)部時(shí)鐘 燒錄軟件會(huì)幫我們配置好 如不懂 參考前面第3章系統(tǒng)設(shè)置學(xué)習(xí)。
// 燒錄軟件設(shè)置11.0592MHz為系統(tǒng)時(shí)鐘。以后我們的學(xué)習(xí)都是這個(gè)時(shí)鐘頻率。
               P_SW2 |= (1<<7);
               CKSEL = 0x00; //選擇內(nèi)部 IRC ( 默認(rèn) )
               P_SW2 &= ~(1<<7);
//配置端口 對(duì)于控制我們系統(tǒng)板的LED,配置準(zhǔn)雙向口和推挽輸出都可以。
//只要是做為輸出,我建議全部設(shè)置為推挽輸出。
/*
PnM1.x PnM0.x Pn.x 口工作模式
0 0 準(zhǔn)雙向口
0 1 推挽輸出
1 0 高阻輸入
1 1 開(kāi)漏輸出
*/
              P1M1 &= ~(1<<1); P1M0 |=(1<<1); //設(shè)置為推挽輸出
              P_SW2 |= (1<<7);
              P1PU = 0x00;//禁止P1端口內(nèi)部的 3.7K 上拉電阻
              P1NCS = 0xFF; //禁止P1端口的施密特觸發(fā)功能。
              P_SW2 &= ~(1<<7);
/*串口1相關(guān)配置*/
              P_SW1 &= ~(1 << 6);P_SW1 &= ~(1 << 7); //串口 1 功能腳選擇位
              SCON = 0x50; //模式1 可變波特率8位數(shù)據(jù)方式
              PCON &= 0x3F; //串口 1 的各個(gè)模式的波特率都不加倍 無(wú)幀錯(cuò)檢測(cè)功能
              AUXR |= (1 << 0); //選擇定時(shí)器 2 作為波特率發(fā)射器
              AUXR &= ~(1 << 4);//定時(shí)器 2 停止計(jì)數(shù),配置完再打開(kāi)。
              AUXR &= ~(1 << 3);//清0則用作定時(shí)器
              AUXR &= ~(1 << 2);//12T 模式,即 CPU 時(shí)鐘 12 分頻( FOSC/12)
              T2L = 0xE8; //12T 模式 9600
              T2H = 0xFF;
              IP |= (1<<4);//優(yōu)先級(jí)控制
              IPH |= (1<<4);
              AUXR |= (1 << 4); //啟動(dòng)定時(shí)器 2
              ES = 1; //使能串口1中斷
              EA = 1;//總中斷打開(kāi)
              LED = 0;//LED滅
              while (1)
              {
              uart1_SendData(100);
              uart1_SendDataFrame("adfgss");
              }
             }

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:140644 發(fā)表于 2021-1-25 09:49 | 顯示全部樓層
szb314 發(fā)表于 2021-1-25 08:23
說(shuō)明書(shū)仔細(xì)研究一下

已經(jīng)用STC其他系列串口做過(guò)不少東西了,以往直接移植就行,就這款STC8G1K08  SOP8串口不工作
回復(fù)

使用道具 舉報(bào)

ID:752974 發(fā)表于 2021-1-25 09:58 | 顯示全部樓層
能燒寫(xiě)程序,證明硬件,電路均沒(méi)有問(wèn)題,通信不工作就是初始化沒(méi)有做好,可能是某些細(xì)節(jié)沒(méi)有注意到,仔細(xì)看看說(shuō)明能有收獲。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:140644 發(fā)表于 2021-1-25 10:50 | 顯示全部樓層
電話聯(lián)系了,用定時(shí)器1做波特率發(fā)生器,忘記上次用哪一個(gè)定時(shí)器了,官方例程都試過(guò)。下載軟件讀芯片型號(hào)沒(méi)說(shuō)沒(méi)有定時(shí)器2,草率了,謝謝大伙支持。新年快樂(lè)

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:255919 發(fā)表于 2021-1-28 17:42 | 顯示全部樓層
czhaii 發(fā)表于 2021-1-25 10:50
電話聯(lián)系了,用定時(shí)器1做波特率發(fā)生器,忘記上次用哪一個(gè)定時(shí)器了,官方例程都試過(guò)。下載軟件讀芯片型號(hào)沒(méi) ...

STC8G1K08單片機(jī)串口通訊用、
void main(void)
     { TR1 = 0;                        //波特率使用Timer1產(chǎn)生
        AUXR &= ~0x01;                //S1 BRT Use Timer1;
        AUXR |=  (1<<6);        //Timer1 set as 1T mode
        TH1 = (u8)(Timer1_Reload >> 8);
        TL1 = (u8)Timer1_Reload;
        TR1  = 1;

       REN = 1;        //允許接收
        ES  = 1;        //允許中斷

        EA = 1;                //允許全局中斷
        }
/********************* UART1中斷函數(shù)************************/
void UART1_int (void) interrupt UART1_VECTOR
{
        if(RI)
        {
                RI = 0;
               
        }

        if(TI)
        {
                TI = 0;
               
        }
}

回復(fù)

使用道具 舉報(bào)

ID:923440 發(fā)表于 2021-7-4 17:28 | 顯示全部樓層
樓主,你這個(gè)問(wèn)題解決了嘛,我用的也是這個(gè)芯片,串口通信也是調(diào)試不出來(lái),請(qǐng)問(wèn)你是怎么解決的,對(duì)了我用的是串口2進(jìn)行通信,定時(shí)器1,跟定時(shí)器2都試了,都不行,串口1的就行,請(qǐng)問(wèn)什么原因
回復(fù)

使用道具 舉報(bào)

ID:725306 發(fā)表于 2021-8-5 21:43 來(lái)自觸屏版 | 顯示全部樓層
51c_yang 發(fā)表于 2021-7-4 17:28
樓主,你這個(gè)問(wèn)題解決了嘛,我用的也是這個(gè)芯片,串口通信也是調(diào)試不出來(lái),請(qǐng)問(wèn)你是怎么解決的,對(duì)了我用的 ...

咋么樣?解決了嗎兄弟?我也遇到這個(gè)問(wèn)題了。就用isp軟件生成了下初始化函數(shù),主函數(shù)里判斷RI TI使用進(jìn)不去。有好辦法嗎?
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-8-6 00:07 | 顯示全部樓層
4147313 發(fā)表于 2021-8-5 21:43
咋么樣?解決了嗎兄弟?我也遇到這個(gè)問(wèn)題了。就用isp軟件生成了下初始化函數(shù),主函數(shù)里判斷RI TI使用進(jìn)不 ...

試了官方代碼了嗎?
  1. #include "reg51.h"
  2. #include "intrins.h"
  3. #define FOSC 11059200UL
  4. #define BRT (65536 - FOSC / 115200 / 4)
  5. sfr AUXR = 0x8e;
  6. sfr T2H = 0xd6;
  7. sfr T2L = 0xd7;
  8. sfr S2CON = 0x9a;
  9. sfr S2BUF = 0x9b;
  10. sfr IE2 = 0xaf;
  11. sfr P0M1 = 0x93;
  12. sfr P0M0 = 0x94;
  13. sfr P1M1 = 0x91;
  14. sfr P1M0 = 0x92;
  15. sfr P2M1 = 0x95;
  16. sfr P2M0 = 0x96;
  17. sfr P3M1 = 0xb1;
  18. sfr P3M0 = 0xb2;
  19. sfr P4M1 = 0xb3;
  20. sfr P4M0 = 0xb4;
  21. sfr P5M1 = 0xc9;
  22. sfr P5M0 = 0xca;
  23. bit busy;
  24. char wptr;
  25. char rptr;
  26. char buffer[16];
  27. void Uart2Isr() interrupt 8
  28. {
  29.     if (S2CON & 0x02)
  30.     {
  31.         S2CON &= ~0x02;
  32.         busy = 0;
  33.     }
  34.     if (S2CON & 0x01)
  35.     {
  36.         S2CON &= ~0x01;
  37.         buffer[wptr++] = S2BUF;
  38.         wptr &= 0x0f;
  39.     }
  40. }
  41. void Uart2Init()
  42. {
  43.     S2CON = 0x10;
  44.     T2L = BRT;
  45.     T2H = BRT >> 8;
  46.     AUXR = 0x14;
  47.     wptr = 0x00;
  48.     rptr = 0x00;
  49.     busy = 0;
  50. }
  51. void Uart2Send(char dat)
  52. {
  53.     while (busy);
  54.     busy = 1;
  55.     S2BUF = dat;
  56. }
  57. void Uart2SendStr(char *p)
  58. {
  59.     while (*p)
  60.     {
  61.         Uart2Send(*p++);
  62.     }
  63. }
  64. void main()
  65. {
  66.     P0M0 = 0x00;
  67.     P0M1 = 0x00;
  68.     P1M0 = 0x00;
  69.     P1M1 = 0x00;
  70.     P2M0 = 0x00;
  71.     P2M1 = 0x00;
  72.     P3M0 = 0x00;
  73.     P3M1 = 0x00;
  74.     P4M0 = 0x00;
  75.     P4M1 = 0x00;
  76.     P5M0 = 0x00;
  77.     P5M1 = 0x00;
  78.     Uart2Init();
  79.     IE2 = 0x01;
  80.     EA = 1;
  81.     Uart2SendStr("Uart Test !\r\n");
  82.     while (1)
  83.     {
  84.         if (rptr != wptr)
  85.         {
  86.             Uart2Send(buffer[rptr++]);
  87.             rptr &= 0x0f;
  88.         }
  89.     }
  90. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2021-8-6 08:28 | 顯示全部樓層
STC8G1K08-8Pin芯片型號(hào)沒(méi)有定時(shí)器2
STC8G1K08-8Pin.jpg


  1. #include "reg51.h"
  2. #include "intrins.h"

  3. #define FOSC            11059200UL
  4. #define BRT             (65536 - FOSC / 115200 / 4)

  5. sfr     AUXR        =   0x8e;

  6. bit busy;
  7. char wptr;
  8. char rptr;
  9. char buffer[16];

  10. void UartIsr() interrupt 4
  11. {
  12.     if (TI)
  13.     {
  14.         TI = 0;
  15.         busy = 0;
  16.     }
  17.     if (RI)
  18.     {
  19.         RI = 0;
  20.         buffer[wptr++] = SBUF;
  21.         wptr &= 0x0f;
  22.     }
  23. }

  24. void UartInit()
  25. {
  26.     SCON = 0x50;
  27.     TMOD = 0x00;
  28.     TL1 = BRT;
  29.     TH1 = BRT >> 8;
  30.     TR1 = 1;
  31.     AUXR = 0x40;
  32.     wptr = 0x00;
  33.     rptr = 0x00;
  34.     busy = 0;
  35. }

  36. void UartSend(char dat)
  37. {
  38.     while (busy);
  39.     busy = 1;
  40.     SBUF = dat;
  41. }

  42. void UartSendStr(char *p)
  43. {
  44.     while (*p)
  45.     {
  46.         UartSend(*p++);
  47.     }
  48. }

  49. void main()
  50. {
  51.     UartInit();
  52.     ES = 1;
  53.     EA = 1;
  54.     UartSendStr("Uart Test !\r\n");

  55.     while (1)
  56.     {
  57.         if (rptr != wptr)
  58.         {
  59.             UartSend(buffer[rptr++]);
  60.             rptr &= 0x0f;
  61.         }
  62.     }
  63. }

復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:1103807 發(fā)表于 2023-12-12 00:38 | 顯示全部樓層
lkc8210 發(fā)表于 2021-8-6 00:07
試了官方代碼了嗎?

試了一下 也是沒(méi)反應(yīng) 串口2 接的 CH340C的 和這個(gè)有影響?
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-12-12 09:48 | 顯示全部樓層
JJJ2u 發(fā)表于 2023-12-12 00:38
試了一下 也是沒(méi)反應(yīng) 串口2 接的 CH340C的 和這個(gè)有影響?

如果你是用樓主同款芯片
它只有一個(gè)串口
2023-12-12_094724.png

回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-12-12 11:28 | 顯示全部樓層
czhaii 發(fā)表于 2021-1-24 22:57
測(cè)試了好幾天死活出不來(lái),我STC其他芯片挺多,STC15W408 STC15W204 15W1K16SQ IAP系列都有,
串口都可以通 ...

“程序可以下載,覺(jué)得應(yīng)該是芯片問(wèn)題”?

想多了,STC是串口下載的,如果串口有問(wèn)題,怎么能串口下載程序呢?這不矛盾嗎?
MCU多少腳的?如果是8腳的,串口要用定時(shí)器1做波特率發(fā)生器。16腳以上的則可以用定時(shí)器1或2均可。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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