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

QQ登錄

只需一步,快速開始

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

新手小白求解這個(gè)單片機(jī)C語(yǔ)言程序wptr &= 0x0f;是段什么意思?

[復(fù)制鏈接]
ID:1008209 發(fā)表于 2023-8-26 21:00 | 顯示全部樓層 |閱讀模式
void UART1_Isr() interrupt 4 using 1
{
    if (TI)                   // 發(fā)送中斷標(biāo)志位判斷
    {
        TI = 0;               // 清中斷標(biāo)志
                busy = 0;             // 發(fā)送標(biāo)志位置0,表示滿足發(fā)送條件
        LED0 = !LED0;         // 測(cè)試端口
    }
    if (RI)                   // 接收中斷標(biāo)志位判斷
    {
        RI = 0;               // 清中斷標(biāo)志
        LED1 = !LED1;         // 測(cè)試端口
                buffer[wptr++] = SBUF;
                wptr &= 0x0f;
    }
}

這個(gè)wptr &= 0x0f;是段什么意思?
回復(fù)

使用道具 舉報(bào)

ID:1085441 發(fā)表于 2023-8-26 23:15 | 顯示全部樓層
wptr = wptr & 0x0f;
回復(fù)

使用道具 舉報(bào)

ID:1088185 發(fā)表于 2023-8-27 00:08 | 顯示全部樓層
讓wptr在0至0x0F之間循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:277531 發(fā)表于 2023-8-27 06:55 | 顯示全部樓層
這個(gè)我也想問一下,為什么這樣?
回復(fù)

使用道具 舉報(bào)

ID:277531 發(fā)表于 2023-8-27 06:58 | 顯示全部樓層
也想知道是什么意思?
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2023-8-27 09:50 | 顯示全部樓層
mdj-fish 發(fā)表于 2023-8-27 06:55
這個(gè)我也想問一下,為什么這樣?

buffer[16] 是串口的緩沖區(qū),長(zhǎng)度是16個(gè)字節(jié)
是一個(gè)循環(huán)緩沖區(qū)(circular buffer)
循環(huán)緩沖區(qū)或環(huán)形緩沖區(qū)是一種數(shù)據(jù)結(jié)構(gòu),它使用單個(gè)固定大小的緩沖區(qū),就好像它是端到端連接的一樣。
這個(gè) wptr &= 0x0f; 的意思是 讓wptr在0至0x0F之間循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:631850 發(fā)表于 2023-8-27 10:15 | 顯示全部樓層
angmall 發(fā)表于 2023-8-27 09:50
buffer[16] 是串口的緩沖區(qū),長(zhǎng)度是16個(gè)字節(jié)
是一個(gè)循環(huán)緩沖區(qū)(circular buffer)
循環(huán)緩沖區(qū)或環(huán)形緩沖 ...

謝謝解釋   又學(xué)習(xí)了一下
回復(fù)

使用道具 舉報(bào)

ID:230500 發(fā)表于 2023-8-27 10:25 | 顯示全部樓層
wptr &= 0x0f 相當(dāng)于 wptr = wptr & 0x0f ;
假設(shè)WPTR= 1010 1010  和0x0F相與 結(jié)果就是 0000 1010
就是把WPTR控制在0x0F之內(nèi),不會(huì)超出這個(gè)數(shù)據(jù)長(zhǎng)度!
回復(fù)

使用道具 舉報(bào)

ID:647261 發(fā)表于 2023-8-28 08:52 | 顯示全部樓層
可以改成if(wptr == 16) wptr=0;
這樣是不是更好理解
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-8-28 11:09 | 顯示全部樓層
將高4位清零,低4位保持不變。
回復(fù)

使用道具 舉報(bào)

ID:1040201 發(fā)表于 2023-8-28 16:12 | 顯示全部樓層
wptr = wptr & 0x0f;把wptr 將高4位清零,低4位保持不變。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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