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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)SBUF能不能table[]=一樣 改變[]內(nèi)的數(shù),改變它讀出來(lái)的數(shù)

[復(fù)制鏈接]
ID:1110076 發(fā)表于 2024-1-25 00:43 來(lái)自觸屏版 | 顯示全部樓層 |閱讀模式
SBUF能不能像table[]一樣,改變[]內(nèi)的數(shù),改變它讀出來(lái)的數(shù)。例如table[]={1,2} table[1]=2
回復(fù)

使用道具 舉報(bào)

ID:198296 發(fā)表于 2024-1-25 06:06 | 顯示全部樓層
不行!
SBUF實(shí)際上是由兩個(gè)寄存器組成, 一個(gè)發(fā)送一個(gè)接收(共用同一地址).
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-1-25 10:05 | 顯示全部樓層
就算行,有什么意義呢?接收SBUF里面的值是外部總線確定的,你改它除了騙你自己有什么用途?
回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2024-1-25 10:13 | 顯示全部樓層

SBUF可以賦值
回復(fù)

使用道具 舉報(bào)

ID:1110076 發(fā)表于 2024-1-25 10:51 來(lái)自觸屏版 | 顯示全部樓層
Hephaestus 發(fā)表于 2024-1-25 10:05
就算行,有什么意義呢?接收SBUF里面的值是外部總線確定的,你改它除了騙你自己有什么用途?

不不不,我的意思是。如果想要在顯示屏上顯示一串字符,其中一個(gè)辦法不是先建立一個(gè)table然后通過(guò)改變括號(hào)里的數(shù),從而讓table里的每個(gè)字符都在顯示屏上展示出來(lái),那如果我想通過(guò)串口輸入的東西,把我輸入的字符在顯示屏上同步展示的話,能不能類(lèi)比那個(gè)table,對(duì)SBUF做出同樣的操作
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2024-1-25 16:04 | 顯示全部樓層
CPU改變SBUF寄存器的值會(huì)觸發(fā)單片機(jī)內(nèi)部串口模塊發(fā)送字節(jié)的行為。
串口接收到字節(jié)后將其存入SBUF寄存器并觸發(fā)串口中斷,最后被CPU取走。
回復(fù)

使用道具 舉報(bào)

ID:633559 發(fā)表于 2024-1-26 08:42 | 顯示全部樓層
米小忙 發(fā)表于 2024-1-25 10:51
不不不,我的意思是。如果想要在顯示屏上顯示一串字符,其中一個(gè)辦法不是先建立一個(gè)table然后通過(guò)改變括 ...

一般單片機(jī)SBUF接收只緩存1個(gè)字節(jié),后邊接收的數(shù)據(jù)會(huì)覆蓋掉之前的。一般的操作定義一個(gè)你說(shuō)的table數(shù)組,利用接收中斷或者循環(huán)接收讀取SBUF的值存入table,然后像你說(shuō)的去操作table。那就是2個(gè)數(shù)組了,1個(gè)用于接收緩存數(shù)據(jù),1個(gè)用于顯示數(shù)據(jù)緩存。關(guān)于SBUF寄存器可以瀏覽相應(yīng)芯片的數(shù)據(jù)手冊(cè)。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-1-26 11:30 | 顯示全部樓層
米小忙 發(fā)表于 2024-1-25 10:51
不不不,我的意思是。如果想要在顯示屏上顯示一串字符,其中一個(gè)辦法不是先建立一個(gè)table然后通過(guò)改變括 ...

你要傳給SBUF的數(shù)的范圍呢?
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2024-1-26 12:44 | 顯示全部樓層
Hephaestus 發(fā)表于 2024-1-26 11:30
你要傳給SBUF的數(shù)的范圍呢?

SBUF寄存器是個(gè)8位寬的寄存器,因此范圍在0~255之間
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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