找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2181|回復: 8
收起左側

單片機串口通訊中SBUF接收發(fā)送的數(shù)據(jù)是怎樣的?

[復制鏈接]
ID:1081798 發(fā)表于 2023-6-5 20:31 | 顯示全部樓層 |閱讀模式
新手求助一下各位大神
想問一問串口通訊中SBUF接收發(fā)送的數(shù)據(jù)是怎樣形式的 就好像我在電腦上輸入數(shù)字“1”, SBUF里接收的是什么類型的數(shù)據(jù)
接收到這個數(shù)據(jù)能用來直接使用嗎 就好像下圖一樣 得到的數(shù)據(jù)好像和我想要的有出入。。。
1.png

回復

使用道具 舉報

ID:235200 發(fā)表于 2023-6-6 00:43 | 顯示全部樓層
電腦里輸入1 ,如果是HEX數(shù)據(jù)模式發(fā)送,接收的是0x01,可以直接使用,如果是文本模式發(fā)送,接收的是0x31,需要減去0x30才可以直接使用
回復

使用道具 舉報

ID:94031 發(fā)表于 2023-6-6 10:48 | 顯示全部樓層
SBUF里接收的數(shù)據(jù)是二進制8位,是什么類型,由收發(fā)雙方協(xié)議,可以是ASCII字符,也可以是無符號整數(shù)或其他什么。
回復

使用道具 舉報

ID:1081798 發(fā)表于 2023-6-6 10:54 | 顯示全部樓層
csmyldl 發(fā)表于 2023-6-6 00:43
電腦里輸入1 ,如果是HEX數(shù)據(jù)模式發(fā)送,接收的是0x01,可以直接使用,如果是文本模式發(fā)送,接收的是0x31,需 ...

感謝 學習了 確實是這樣的 還有一個問題就是 串口中文本模式怎么輸入‘10’兩位甚至3位的數(shù)呢,像沒設置的輸入'10' 返回的都是亂碼
回復

使用道具 舉報

ID:123289 發(fā)表于 2023-6-6 15:38 | 顯示全部樓層
你缺的知識太多。
1、先看二進制數(shù),了解一個字節(jié)。
2、再看數(shù)字的串行表達方式。
3、了解串行協(xié)議
4、了解數(shù)據(jù)格式:BIN、HEX、ASCII。
回復

使用道具 舉報

ID:1082368 發(fā)表于 2023-6-6 15:56 | 顯示全部樓層
SBUF 是串行數(shù)據(jù)緩沖器的全稱。在串口通訊中,當 CPU 向 SBUF 寫入數(shù)據(jù)時,99H 表示發(fā)送 SBUF;當 CPU 從 SBUF 讀出數(shù)據(jù)時,99H 表示接收 SBUF 1。SBUF 讀出的數(shù)據(jù)類型是 unsigned char,取值范圍是 0-255(16 進制 0x00 - 0xff)2。  如果你在電腦上輸入數(shù)字“1”,單片機實際接收到的數(shù)據(jù)是 0x31(1 對應的 ASCII 碼)2。你可以根據(jù)實際情況來決定是否直接使用接收到的數(shù)據(jù)。
回復

使用道具 舉報

ID:1082368 發(fā)表于 2023-6-6 15:56 | 顯示全部樓層
SBUF 是串行數(shù)據(jù)緩沖器的全稱。在串口通訊中,當 CPU 向 SBUF 寫入數(shù)據(jù)時,99H 表示發(fā)送 SBUF;當 CPU 從 SBUF 讀出數(shù)據(jù)時,99H 表示接收 SBUF 1。SBUF 讀出的數(shù)據(jù)類型是 unsigned char,取值范圍是 0-255(16 進制 0x00 - 0xff)2。

如果你在電腦上輸入數(shù)字“1”,單片機實際接收到的數(shù)據(jù)是 0x31(1 對應的 ASCII 碼)2。你可以根據(jù)實際情況來決定是否直接使用接收到的數(shù)據(jù)。
回復

使用道具 舉報

ID:1081798 發(fā)表于 2023-6-6 16:32 | 顯示全部樓層
5t511 發(fā)表于 2023-6-6 15:56
SBUF 是串行數(shù)據(jù)緩沖器的全稱。在串口通訊中,當 CPU 向 SBUF 寫入數(shù)據(jù)時,99H 表示發(fā)送 SBUF;當 CPU 從 S ...

謝謝你的解答 你說的這些已經去了解過了 也解決了我的問題 就是還有個問題能幫忙解答一下嗎
就是我的程序設置只能單字節(jié)的輸入和讀取,
如果我輸入“10”兩個字節(jié)的數(shù)據(jù)就會亂碼,
然后我自己去了解了多字節(jié)的串口收發(fā),大概就是設置一個數(shù)組,數(shù)組可以接收N個數(shù)據(jù),
在串口中斷時,數(shù)據(jù)存入數(shù)組,當數(shù)組達到N時,在根據(jù)主函數(shù)來發(fā)送,數(shù)組清空,這樣的循環(huán)來做
但是程序一直不能收發(fā)
回復

使用道具 舉報

ID:291668 發(fā)表于 2023-6-6 16:41 | 顯示全部樓層
就是數(shù)據(jù)類型定義的問題。搞清楚就好了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表