久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2707|回復: 13
收起左側

USART的數據位設置為9位

[復制鏈接]
ID:1040483 發表于 2023-9-13 13:41 | 顯示全部樓層 |閱讀模式
1.請問有沒有串口助手的數據位可以設置為9位

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

謝謝!
回復

使用道具 舉報

ID:883242 發表于 2023-9-13 14:23 | 顯示全部樓層
兩個問題的答案都是“不可以!”

USART數據位有多少取決于硬件,軟件就是無限作弊都繞不開硬件限制,第二個問題ESP的datasheet告訴你了,第一個問題可以查16C550的datasheet,電腦的串口都是這個芯片,雖然已經不存在實際的16C550,但是作為IP還是芯片集的標準配置。
回復

使用道具 舉報

ID:123289 發表于 2023-9-13 15:08 | 顯示全部樓層
可以自己定義(軟件方式):
用一根、兩根、三根IO線,都可以,只要雙方的通訊協議一樣即可。
以兩線為例,P1.0 = clk、P1.1 = data。通訊的雙方再協議一下,如:頻率,同步方式……。(可以對照232的協議進行,8位改9位,不就可以了嗎?)
不過,用軟件做很麻煩,又要求有一定的水準。
用硬件做:用9位以上的移位寄存器,搭建。也很麻煩,也要求有一定硬件水準。

一般方案:就用現成的8位,9位用兩個字節16位傳遞,做做組合、拆分就行了,16位去除7位,也不錯啊。

最接近可行的方案:利用奇偶校驗位傳輸第9位。
發送方:
1、將SCON的SM0設置成1,9位串行模式。
2、先將第9位寫入TB8。
3、再將第1-8位寫入SBUF,發送。
接收方:
1、將SCON的SM0設置成1,9位串行模式。
2、將SCON的SM2=0,這個設置是關鍵!!!如果SM2設置為1,則收不到第9位=0的數據。
3、將收到的RB8存于第9位,SBUF存于前8位。



回復

使用道具 舉報

ID:1040483 發表于 2023-9-13 15:13 | 顯示全部樓層
Hephaestus 發表于 2023-9-13 14:23
兩個問題的答案都是“不可以!”

USART數據位有多少取決于硬件,軟件就是無限作弊都繞不開硬件限制,第 ...

好的,非常感謝。我現在單片機需要與一個模塊進行串口通信,模塊描述數據位是9位,其中第9位為0時,前8位作為數據寫進模塊,第9位為1時,前8位作為命令寫進模塊,所以第九位相當于一個標志吧。請問我要怎么才能讓單片機的數據位為9呢。

回復

使用道具 舉報

ID:883242 發表于 2023-9-13 16:16 | 顯示全部樓層
年薪30w 發表于 2023-9-13 15:13
好的,非常感謝。我現在單片機需要與一個模塊進行串口通信,模塊描述數據位是9位,其中第9位為0時,前8位 ...

如果單片機就是沒有9位USART,那么只能有一個解決方案,就是加上奇偶校驗位。另外計算8位數據的奇偶位,犧牲掉一個數據位,強制讓奇偶位為1或0,這個方案根據你傳輸數據的不同,有可能不能用。
回復

使用道具 舉報

ID:1040483 發表于 2023-9-13 16:31 | 顯示全部樓層
yzwzfyz 發表于 2023-9-13 15:08
可以自己定義(軟件方式):
用一根、兩根、三根IO線,都可以,只要雙方的通訊協議一樣即可。
以兩線為例 ...

謝謝!
回復

使用道具 舉報

ID:1040483 發表于 2023-9-13 16:35 | 顯示全部樓層
Hephaestus 發表于 2023-9-13 16:16
如果單片機就是沒有9位USART,那么只能有一個解決方案,就是加上奇偶校驗位。另外計算8位數據的奇偶位, ...

請問如何強制讓奇偶校驗位為1或0呢,我這邊使用ESP32-S3在配置串口時只有失能奇偶校驗位、使能偶檢驗、使能奇校驗三種可選。另外此MCU的UART的發送函數是按字節發送,不是按位發送
回復

使用道具 舉報

ID:1092275 發表于 2023-9-13 17:09 | 顯示全部樓層
硬件決定了軟件
回復

使用道具 舉報

ID:213173 發表于 2023-9-13 20:28 | 顯示全部樓層
串行通訊不必非得用硬件串口。
回復

使用道具 舉報

ID:883242 發表于 2023-9-13 22:47 | 顯示全部樓層
年薪30w 發表于 2023-9-13 15:13
好的,非常感謝。我現在單片機需要與一個模塊進行串口通信,模塊描述數據位是9位,其中第9位為0時,前8位 ...

還是把模塊描述貼出來吧,我就不信有這么屌的公司自絕于,故意讓自己的產品跟主流不兼容,賣不出去。
回復

使用道具 舉報

ID:1040483 發表于 2023-9-14 08:30 | 顯示全部樓層
Hephaestus 發表于 2023-9-13 22:47
還是把模塊描述貼出來吧,我就不信有這么屌的公司。

CH375 的串行數據格式是 1 個起始位、9 個數據位、1 個停止位,其中前 8 個數據位是一個字節
數據,最后 1 個數據位是命令標志位。第 9 位為 0 時,前 8 位的數據被寫入 CH375 芯片中,第 9 位為
1 時,前 8 位被作為命令碼寫入 CH375 芯片中。

這是模塊datashit關于串口的描述,他其實還支持并口
回復

使用道具 舉報

ID:1040483 發表于 2023-9-14 08:31 | 顯示全部樓層
wulin 發表于 2023-9-13 20:28
串行通訊不必非得用硬件串口。

請高人詳細指點!
回復

使用道具 舉報

ID:213173 發表于 2023-9-14 13:04 | 顯示全部樓層
年薪30w 發表于 2023-9-14 08:31
請高人詳細指點!

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

回復

使用道具 舉報

ID:1040483 發表于 2023-9-14 14:57 | 顯示全部樓層
wulin 發表于 2023-9-14 13:04
MCU既可以與CH375并口連接,也可以與CH375串口連接。也不存在你描述的串口傳輸9bit數據問題。如果MCU端口 ...

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久一区 | 水蜜桃久久夜色精品一区 | 国产福利在线 | 黄色网址在线播放 | 蜜月va乱码一区二区三区 | 国产精品久久久久久亚洲调教 | 成人影院午夜 | 国产精品久久久久久久久久免费 | 日韩国产精品一区二区三区 | www.99re| 自拍视频精品 | 午夜精品久久久久久久久久久久久 | 日韩伦理一区二区三区 | a级毛片免费高清视频 | 国产一区高清 | 99精品国自产在线 | 欧美精品一区二区三区四区五区 | 性欧美精品一区二区三区在线播放 | 亚洲欧美日韩电影 | av影音资源 | 亚洲精品成人在线 | 成人高清视频在线观看 | 国产高清在线观看 | 久久久高清 | 中文字幕亚洲一区二区va在线 | 欧美欧美欧美 | 亚洲成人午夜电影 | 美女天天操| 久久区二区 | 免费一级欧美在线观看视频 | 日韩综合在线 | 91久久久久久久久久久 | 91精品国产综合久久福利软件 | 特一级毛片 | 成人在线中文字幕 | 久久99久久99精品免视看婷婷 | 亚洲精品v日韩精品 | 久久高清亚洲 | 成人小视频在线观看 | 精品久久久久久亚洲精品 | 青青草网站在线观看 |