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

QQ登錄

只需一步,快速開始

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

新手求教c語言問題 這個(gè)字符存到數(shù)組的語句,不應(yīng)該使用for循環(huán)嗎

[復(fù)制鏈接]
ID:929517 發(fā)表于 2023-6-17 01:03 來自觸屏版 | 顯示全部樓層 |閱讀模式
請(qǐng)問這個(gè)字符存到數(shù)組的語句,不應(yīng)該使用for循環(huán)嗎?代碼是從上到下執(zhí)行,只有這么一句,不是只能存入一個(gè)字符嗎?這段代碼是中斷程序中接收GPS發(fā)送的數(shù)據(jù)。求大神指點(diǎn),
IMG_20230616_115707.png
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2023-6-17 06:17 | 顯示全部樓層
串口硬件收到一個(gè)字節(jié),發(fā)出一個(gè)中斷執(zhí)行這段程序,字節(jié)存入rev_buf數(shù)組,數(shù)組標(biāo)號(hào)+1,程序轉(zhuǎn)入主程序,中斷一次存一個(gè),不用for。
回復(fù)

使用道具 舉報(bào)

ID:879348 發(fā)表于 2023-6-17 08:19 | 顯示全部樓層
先理解中斷是啥概念,別一上來就看程序
回復(fù)

使用道具 舉報(bào)

ID:353115 發(fā)表于 2023-6-17 09:24 | 顯示全部樓層
看來樓主對(duì)底層不了解。每接收一個(gè)字節(jié)數(shù)據(jù),中斷都觸發(fā)一次,因此,當(dāng)你意識(shí)到這個(gè)串口無法一次性識(shí)別一幀數(shù)據(jù)的時(shí)候,應(yīng)該差不多明白了,需要用一個(gè)變量自加建立索引,來存儲(chǔ)每個(gè)字節(jié)數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

ID:712097 發(fā)表于 2023-6-17 11:56 | 顯示全部樓層
軟硬結(jié)合,兩手都要抓,要手都要硬,就能更好理解代碼了。
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2023-6-17 15:39 | 顯示全部樓層
這是屬于單片機(jī)自身的問題了和C語言關(guān)系不大
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-6-17 16:03 | 顯示全部樓層
字符串不定長,以\n作為結(jié)束標(biāo)志,你又不知道具體長度怎么循環(huán)???
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2023-6-17 16:18 | 顯示全部樓層
/*************************************/
void Uart_Receive() interrupt 4
{
        static uchar ch=0;                //靜態(tài)計(jì)數(shù)變量
        RI=0;                                        //接收中斷請(qǐng)求標(biāo)志位清0
        rev_buf[ch]=SBUF;                //接收到的數(shù)據(jù)串保存在緩存數(shù)組
        if(rec_buf[0]=='$')                //驗(yàn)證數(shù)據(jù)頭,如果錯(cuò)誤,被后續(xù)數(shù)據(jù)覆蓋
        {
                ch++;
                if(rec_buf[ch-1]=='\n')//結(jié)束
                {
                        flag=1;                        //接收完成標(biāo)志置1
                        ch=0;                        //計(jì)數(shù)變量清0
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:1074206 發(fā)表于 2023-6-17 19:01 來自觸屏版 | 顯示全部樓層
每接收一個(gè)字節(jié),都會(huì)產(chǎn)生中斷,只不過是在底層處理了。都是有協(xié)議處理的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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