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

QQ登錄

只需一步,快速開始

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

STC32G單片機(jī)串口3接收數(shù)據(jù)字節(jié)數(shù)不對(duì),幫我看一下吧?

[復(fù)制鏈接]
ID:525244 發(fā)表于 2022-4-3 11:20 | 顯示全部樓層 |閱讀模式
程序是串口3接收,串口1發(fā)送串口3接收到的字節(jié)數(shù),發(fā)送八個(gè),經(jīng)常收到7個(gè),程序在下邊,請(qǐng)幫我看一下原因,謝謝!
11111.PNG

V1.6 STC32G重構(gòu) - UART3.7z

65.16 KB, 下載次數(shù): 7

回復(fù)

使用道具 舉報(bào)

ID:525244 發(fā)表于 2022-4-3 18:31 | 顯示全部樓層
程序很簡(jiǎn)單,就兩個(gè)串口中斷接收,DMA發(fā)送。串口3直接TTL轉(zhuǎn)USB時(shí)。數(shù)據(jù)收發(fā)沒問題。當(dāng)用USB轉(zhuǎn)485時(shí),單片機(jī)接收數(shù)據(jù)就容易丟數(shù)據(jù),一串?dāng)?shù)據(jù)前邊應(yīng)該是4個(gè)字節(jié),收到卻是三個(gè)錯(cuò)誤的字節(jié),應(yīng)該從RS485芯片下手吧
#ifdef UART3
void UART3_ISR_Handler (void) interrupt UART3_VECTOR
{
        if(RI3)
        {
                CLR_RI3();
                if(COM3.B_RX_OK == 0)
                {
                        if(COM3.RX_Cnt >= COM_RX3_Lenth)        COM3.RX_Cnt = 0;
                        if(COM3.RX_Cnt == 16)        IWEDATA.ADC0++;
                        RX3_Buffer[COM3.RX_Cnt++] = S3BUF;
                        COM3.RX_TimeOut = TimeOutSet3;
                        SBUF=S3BUF;
                }
        }

        if(TI3)
        {
                CLR_TI3();
                COM3.B_TX_busy = 0;
               
//                if(COM3.TX_read != COM3.TX_write)
//                {
//                         S3BUF = TX3_Buffer[COM3.TX_read];
//                        if(++COM3.TX_read >= COM_TX3_Lenth)                COM3.TX_read = 0;
//                }
//                else        COM3.B_TX_busy = 0;
        }
}
#endif
上邊是串口接收中斷,收到數(shù)據(jù)發(fā)給串口1,串口1接收到的數(shù)據(jù)偶爾時(shí)錯(cuò)誤的。
回復(fù)

使用道具 舉報(bào)

ID:525244 發(fā)表于 2022-4-3 19:38 | 顯示全部樓層
通過邏輯分析儀查看RS485轉(zhuǎn)TTL,UART3收到我數(shù)據(jù)是正確的的,但是單片機(jī)接收到的是不正常的。把TTL直接接在UART3上,收到的數(shù)據(jù)就正常。是RXD設(shè)置了高阻輸入,打開了上拉電阻。TXD設(shè)置為推挽輸出,這樣合理嗎?
回復(fù)

使用道具 舉報(bào)

ID:301191 發(fā)表于 2022-4-4 01:54 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報(bào)

ID:507641 發(fā)表于 2022-4-4 11:58 | 顯示全部樓層
你要考慮的是要加等待判斷,是沒接收完。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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