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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2661|回復: 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)
        {
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

來自 2#
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
        }
}
回復

使用道具 舉報

5#
ID:401564 發表于 2022-5-2 17:08 | 只看該作者
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?
回復

使用道具 舉報

6#
ID:790783 發表于 2022-5-2 19:18 | 只看該作者
Y_G_G 發表于 2022-5-2 17:08
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?

調試串口啊
回復

使用道具 舉報

7#
ID:390416 發表于 2022-5-7 11:17 | 只看該作者
Y_G_G 發表于 2022-5-2 17:08
為什么要串口1發送到串口2,然后又一個來回?這樣做有什么意義呢?

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

使用道具 舉報

8#
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在线 | 亚洲 | 国产成人a亚洲精品 | 婷婷免费视频 | 天天拍天天草 | 欧美日韩一区二区在线 | 欧美一级在线观看 | 日韩在线观看中文字幕 | 亚洲午夜精品 | 天天色av | 国产精品91视频 | 在线观看成人小视频 | 成人天堂 | 黑人精品欧美一区二区蜜桃 | 免费黄篇| 免费在线观看av网站 | 午夜不卡福利视频 | 99视频在线免费观看 | 亚洲精品成人在线 | 天天综合网天天综合 | 日韩欧美亚洲 | 久久久成人动漫 | 中文字幕在线视频免费视频 | 一级黄色片一级黄色片 | 国产成人精品综合 | 亚洲一二三区在线观看 | 先锋av资源网 | 久久99网站 | 精品久久久久香蕉网 | 一级片网站视频 | 日日久| 国产精品69毛片高清亚洲 | 国产精品影视在线观看 | 午夜天堂精品久久久久 | 午夜影院在线观看免费 | 日韩在线中文 | 成年人免费在线视频 | 毛片1 | 在线国产欧美 |