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

QQ登錄

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

搜索
查看: 2550|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

USART的數(shù)據(jù)位設(shè)置為9位

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1040483 發(fā)表于 2023-9-13 13:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1.請(qǐng)問(wèn)有沒(méi)有串口助手的數(shù)據(jù)位可以設(shè)置為9位

2.我看ESP32的USART的數(shù)據(jù)位最大設(shè)置為8位,可以設(shè)置為9位嗎,另外ESP32的串口發(fā)送接受函數(shù)是按字節(jié)發(fā)的,不是按bit,如何才能將9bit數(shù)據(jù)發(fā)送接受出去呢

謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-9-13 14:23 | 只看該作者
兩個(gè)問(wèn)題的答案都是“不可以!”

USART數(shù)據(jù)位有多少取決于硬件,軟件就是無(wú)限作弊都繞不開(kāi)硬件限制,第二個(gè)問(wèn)題ESP的datasheet告訴你了,第一個(gè)問(wèn)題可以查16C550的datasheet,電腦的串口都是這個(gè)芯片,雖然已經(jīng)不存在實(shí)際的16C550,但是作為IP還是芯片集的標(biāo)準(zhǔn)配置。
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2023-9-13 15:08 | 只看該作者
可以自己定義(軟件方式):
用一根、兩根、三根IO線,都可以,只要雙方的通訊協(xié)議一樣即可。
以兩線為例,P1.0 = clk、P1.1 = data。通訊的雙方再協(xié)議一下,如:頻率,同步方式……。(可以對(duì)照232的協(xié)議進(jìn)行,8位改9位,不就可以了嗎?)
不過(guò),用軟件做很麻煩,又要求有一定的水準(zhǔn)。
用硬件做:用9位以上的移位寄存器,搭建。也很麻煩,也要求有一定硬件水準(zhǔn)。

一般方案:就用現(xiàn)成的8位,9位用兩個(gè)字節(jié)16位傳遞,做做組合、拆分就行了,16位去除7位,也不錯(cuò)啊。

最接近可行的方案:利用奇偶校驗(yàn)位傳輸?shù)?位。
發(fā)送方:
1、將SCON的SM0設(shè)置成1,9位串行模式。
2、先將第9位寫(xiě)入TB8。
3、再將第1-8位寫(xiě)入SBUF,發(fā)送。
接收方:
1、將SCON的SM0設(shè)置成1,9位串行模式。
2、將SCON的SM2=0,這個(gè)設(shè)置是關(guān)鍵。。∪绻鸖M2設(shè)置為1,則收不到第9位=0的數(shù)據(jù)。
3、將收到的RB8存于第9位,SBUF存于前8位。



回復(fù)

使用道具 舉報(bào)

地板
ID:1040483 發(fā)表于 2023-9-13 15:13 | 只看該作者
Hephaestus 發(fā)表于 2023-9-13 14:23
兩個(gè)問(wèn)題的答案都是“不可以!”

USART數(shù)據(jù)位有多少取決于硬件,軟件就是無(wú)限作弊都繞不開(kāi)硬件限制,第 ...

好的,非常感謝。我現(xiàn)在單片機(jī)需要與一個(gè)模塊進(jìn)行串口通信,模塊描述數(shù)據(jù)位是9位,其中第9位為0時(shí),前8位作為數(shù)據(jù)寫(xiě)進(jìn)模塊,第9位為1時(shí),前8位作為命令寫(xiě)進(jìn)模塊,所以第九位相當(dāng)于一個(gè)標(biāo)志吧。請(qǐng)問(wèn)我要怎么才能讓單片機(jī)的數(shù)據(jù)位為9呢。

回復(fù)

使用道具 舉報(bào)

5#
ID:883242 發(fā)表于 2023-9-13 16:16 | 只看該作者
年薪30w 發(fā)表于 2023-9-13 15:13
好的,非常感謝。我現(xiàn)在單片機(jī)需要與一個(gè)模塊進(jìn)行串口通信,模塊描述數(shù)據(jù)位是9位,其中第9位為0時(shí),前8位 ...

如果單片機(jī)就是沒(méi)有9位USART,那么只能有一個(gè)解決方案,就是加上奇偶校驗(yàn)位。另外計(jì)算8位數(shù)據(jù)的奇偶位,犧牲掉一個(gè)數(shù)據(jù)位,強(qiáng)制讓奇偶位為1或0,這個(gè)方案根據(jù)你傳輸數(shù)據(jù)的不同,有可能不能用。
回復(fù)

使用道具 舉報(bào)

6#
ID:1040483 發(fā)表于 2023-9-13 16:31 | 只看該作者
yzwzfyz 發(fā)表于 2023-9-13 15:08
可以自己定義(軟件方式):
用一根、兩根、三根IO線,都可以,只要雙方的通訊協(xié)議一樣即可。
以兩線為例 ...

謝謝!
回復(fù)

使用道具 舉報(bào)

7#
ID:1040483 發(fā)表于 2023-9-13 16:35 | 只看該作者
Hephaestus 發(fā)表于 2023-9-13 16:16
如果單片機(jī)就是沒(méi)有9位USART,那么只能有一個(gè)解決方案,就是加上奇偶校驗(yàn)位。另外計(jì)算8位數(shù)據(jù)的奇偶位, ...

請(qǐng)問(wèn)如何強(qiáng)制讓奇偶校驗(yàn)位為1或0呢,我這邊使用ESP32-S3在配置串口時(shí)只有失能奇偶校驗(yàn)位、使能偶檢驗(yàn)、使能奇校驗(yàn)三種可選。另外此MCU的UART的發(fā)送函數(shù)是按字節(jié)發(fā)送,不是按位發(fā)送
回復(fù)

使用道具 舉報(bào)

8#
ID:1092275 發(fā)表于 2023-9-13 17:09 | 只看該作者
硬件決定了軟件
回復(fù)

使用道具 舉報(bào)

9#
ID:213173 發(fā)表于 2023-9-13 20:28 | 只看該作者
串行通訊不必非得用硬件串口。
回復(fù)

使用道具 舉報(bào)

10#
ID:883242 發(fā)表于 2023-9-13 22:47 | 只看該作者
年薪30w 發(fā)表于 2023-9-13 15:13
好的,非常感謝。我現(xiàn)在單片機(jī)需要與一個(gè)模塊進(jìn)行串口通信,模塊描述數(shù)據(jù)位是9位,其中第9位為0時(shí),前8位 ...

還是把模塊描述貼出來(lái)吧,我就不信有這么屌的公司自絕于,故意讓自己的產(chǎn)品跟主流不兼容,賣(mài)不出去。
回復(fù)

使用道具 舉報(bào)

11#
ID:1040483 發(fā)表于 2023-9-14 08:30 | 只看該作者
Hephaestus 發(fā)表于 2023-9-13 22:47
還是把模塊描述貼出來(lái)吧,我就不信有這么屌的公司。

CH375 的串行數(shù)據(jù)格式是 1 個(gè)起始位、9 個(gè)數(shù)據(jù)位、1 個(gè)停止位,其中前 8 個(gè)數(shù)據(jù)位是一個(gè)字節(jié)
數(shù)據(jù),最后 1 個(gè)數(shù)據(jù)位是命令標(biāo)志位。第 9 位為 0 時(shí),前 8 位的數(shù)據(jù)被寫(xiě)入 CH375 芯片中,第 9 位為
1 時(shí),前 8 位被作為命令碼寫(xiě)入 CH375 芯片中。

這是模塊datashit關(guān)于串口的描述,他其實(shí)還支持并口
回復(fù)

使用道具 舉報(bào)

12#
ID:1040483 發(fā)表于 2023-9-14 08:31 | 只看該作者
wulin 發(fā)表于 2023-9-13 20:28
串行通訊不必非得用硬件串口。

請(qǐng)高人詳細(xì)指點(diǎn)!
回復(fù)

使用道具 舉報(bào)

13#
ID:213173 發(fā)表于 2023-9-14 13:04 | 只看該作者
年薪30w 發(fā)表于 2023-9-14 08:31
請(qǐng)高人詳細(xì)指點(diǎn)!

MCU既可以與CH375并口連接,也可以與CH375串口連接。也不存在你描述的串口傳輸9bit數(shù)據(jù)問(wèn)題。如果MCU端口夠用,采用并口連接更好。搜索本論壇有相關(guān)示例程序。 CH375中文手冊(cè).pdf (235.54 KB, 下載次數(shù): 3)

回復(fù)

使用道具 舉報(bào)

14#
ID:1040483 發(fā)表于 2023-9-14 14:57 | 只看該作者
wulin 發(fā)表于 2023-9-14 13:04
MCU既可以與CH375并口連接,也可以與CH375串口連接。也不存在你描述的串口傳輸9bit數(shù)據(jù)問(wèn)題。如果MCU端口 ...

我就是參照了這個(gè)手冊(cè),他說(shuō)串行連接是需要數(shù)據(jù)位9位啊。但是之前我一直用的串口助手測(cè)的,8位,不知道為什么也能正常收發(fā)數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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