久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2785|回復: 7
收起左側

STC12C5A60S2單片機雙串口調試,想實現串口1發數據串口2接收后再發給串口1

[復制鏈接]
ID:790783 發表于 2022-5-1 20:44 | 顯示全部樓層 |閱讀模式
代碼如下,使用12C5A60S2 雙串口調試,想實現串口1發數據串口2接收后再發給串口1,一直想不通該如何實現1發2,2轉發給1。可以提供一下思路嗎?
現在的代碼只實現了一個串口發Hello WorldA,另一個發A,已經神志不清了,求大神指點思路。跪謝
void sendByte(unsigned char dat)
{
        SBUF = dat;
        while(!TI);
        TI = 0;
}
void sendByte2(unsigned char dat)
{
        S2BUF = dat;
        while(!(S2CON & S2TI));
        S2CON &= ~S2TI;
}
void sendString(unsigned char *dat)
{
        while(*dat != '\0')
        {
                sendByte2(*dat++);
        }
}
void sendString2(unsigned char *dat
{
        while(*dat != '\0')
        {
                sendByte2(*dat++);
        }
}
void main()
{
        UartInit();
        sendString("Hello World\r\n");
        sendByte('A');
        sendString2("Hello World\r\n");
        sendByte2('A');
        while(1)
        {
        }
}

回復

使用道具 舉報

ID:624769 發表于 2022-5-1 23:55 | 顯示全部樓層
如果, 你要 Uart1_TX => Uart2_RX => Uart2_TX => Uart1_RX 這個樣子走 四分之三圈的話,首先Uart1, Uart2 都必須開中斷, 其次,至少 Uart1 的接受,要有接收緩沖池。當然,最好都有緩沖池。
回復

使用道具 舉報

ID:790783 發表于 2022-5-2 00:12 | 顯示全部樓層
void main()
{
        UartInit();
        while(1)
        {
        unsigned char date;
        date = SBUF;
        RI = 0;                        //
        S2BUF = date;
        while(!(S2CON & S2TI));
        S2CON &= ~S2TI;        
        }
}
回復

使用道具 舉報

ID:790783 發表于 2022-5-2 12:25 | 顯示全部樓層
188610329 發表于 2022-5-1 23:55
如果, 你要 Uart1_TX => Uart2_RX => Uart2_TX => Uart1_RX 這個樣子走 四分之三圈的話,首先Uart1, Uart2  ...

大佬,幫我判斷一下這段代碼靠譜嗎?我開倆串口工具試驗了一下,串口1發串口2收我再想一下就可以2發1收了。void main()
{
        UartInit();
        while(1)
        {
        unsigned char i;
        while(RI == 0);
        buffer = SBUF;
        RI = 0;       
        send = buffer;
        S2BUF = send;
        while(!(S2CON & S2TI));                //·¢ËííêÎa1
        S2CON &= ~S2TI;
       
        while(!(S2CON & S2RI))
        S2CON &= ~S2RI;     //Clear receive interrupt flag
  buffer = S2BUF;         //P0 show UART data
        }
}
回復

使用道具 舉報

ID:401564 發表于 2022-5-2 17:08 | 顯示全部樓層
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?
回復

使用道具 舉報

ID:790783 發表于 2022-5-2 19:18 | 顯示全部樓層
Y_G_G 發表于 2022-5-2 17:08
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?

調試串口啊
回復

使用道具 舉報

ID:390416 發表于 2022-5-7 11:17 | 顯示全部樓層
Y_G_G 發表于 2022-5-2 17:08
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?

當然有意義的,比如,需要在串口助手上,打印出250000波特率的數據,但是,所有的串口助手都沒有這個波特率。只能把波特率轉換稱串口助手支持的波特率,比如9600 、或者115200
回復

使用道具 舉報

ID:624769 發表于 2022-5-7 21:08 | 顯示全部樓層
以及他, 發表于 2022-5-2 12:25
大佬,幫我判斷一下這段代碼靠譜嗎?我開倆串口工具試驗了一下,串口1發串口2收我再想一下就可以2發1收了 ...

看你的標題, 感覺是你要  串口1 發送給 串口2, 再串口2發送給 串口1, (說實話, 如同5樓所說, 完全不理解你的目的, 并且, 實際上幾乎無法實現)

但是, 看你的代碼, 感覺,你是要 串口1負責收(某處發來的數據), 串口2負責把串口1收到的數據, 發送給第三方.(如果是這個目的, 那么就完全可以理解, 并且也非常容易實現的.)
所以,想確認一下,你到底,具體是什么目的?

最后說一下, 負責接收的, 必須要有中斷, 不能用你這種方式,不然, 一定會數據丟失.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产馆在线真实露脸 | 欧美久久国产精品 | 91色在线 | 久久久精品久久 | 日韩成人一区 | 中文字幕在线二区 | 日韩免费在线视频 | 国产在线一区观看 | 免费在线观看一级毛片 | 亚洲手机视频在线 | 国产免费一区二区三区网站免费 | 亚洲天堂av一区 | 亚洲国产自产 | 99视频免费在线观看 | www.日本三级 | 精品国产亚洲一区二区三区大结局 | 色av一区二区| h在线免费观看 | 久久国产高清 | 毛片在线看看 | 九色在线视频 | 免费在线播放黄色 | 精品中文字幕一区二区三区 | 日韩高清一区二区 | 在线观看www高清视频 | 亚洲综合二区 | 亚洲精品视频在线看 | 一级黄色毛片免费 | 国产在线二区 | 亚洲色综合 | 日韩精品一区二区三区中文字幕 | av天天澡天天爽天天av | 美女爽到呻吟久久久久 | 欧美日韩成人一区二区 | 国产精品成人一区二区 | 一区二区三区不卡视频 | 精品一区二区三区在线视频 | 亚洲免费久久久 | 在线观看黄视频 | 亚洲成人免费av | 国产视频福利一区 |