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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3168|回復: 12
打印 上一主題 下一主題
收起左側

請教SADDR和SADEN寄存器理解的問題

[復制鏈接]
跳轉到指定樓層
樓主
這是手冊里的解釋



我理解SADDR和SADEN是與的關系 類似IP地址的子網掩碼 那么 現在我想只識別1個地址應該怎么寫 比如SADDR是0x10 只接收發給0X10的指令 我把SADDR和SADEN都寫成0x10 結果是0x10~0x1f都可以響應
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:624769 發表于 2022-4-14 17:31 來自手機 | 只看該作者
saden = 0xff;   即需要完全匹配。
回復

使用道具 舉報

板凳
ID:47286 發表于 2022-4-14 18:09 | 只看該作者
188610329 發表于 2022-4-14 17:31
saden = 0xff;   即需要完全匹配。

感謝回復

試了一下 還是0x10~0x1f 是我哪沒寫對么

在main里 while(1)之前寫了以下兩句

SADEN = 0x10;        //0001 0000
SADDR = 0xff;        //0001 1111
回復

使用道具 舉報

地板
ID:47286 發表于 2022-4-14 19:00 | 只看該作者
188610329 發表于 2022-4-14 17:31
saden = 0xff;   即需要完全匹配。

找到問題了 低級錯誤 兩個寄存器賦值反了 再次感謝回復
回復

使用道具 舉報

5#
ID:47286 發表于 2022-4-14 19:03 | 只看該作者
各位看帖的兄弟 不用回復了 我自己把賦值寫反了 為此 聲明一個變量

uint 打臉=低級錯誤;
回復

使用道具 舉報

6#
ID:123289 發表于 2022-4-15 10:46 | 只看該作者
我也常發生這樣的事,自己一個人找許久找不出。把問題與別人一提,卻發現是個低級失誤。
回復

使用道具 舉報

7#
ID:47286 發表于 2022-4-15 10:51 來自手機 | 只看該作者
yzwzfyz 發表于 2022-4-15 10:46
我也常發生這樣的事,自己一個人找許久找不出。把問題與別人一提,卻發現是個低級失誤。

感謝回復

這功能還不錯 但只能串口1 其他口都沒用 有點遺憾
回復

使用道具 舉報

8#
ID:624769 發表于 2022-4-15 16:23 | 只看該作者
dzbj 發表于 2022-4-15 10:51
感謝回復

這功能還不錯 但只能串口1 其他口都沒用 有點遺憾

這個功能, 其實現在用處已經不大了, 只不過被保留了下來, 現在單片機速度都很快了, 自己寫幾行代碼, 利用 8+1的傳輸方式,自己判斷一下,其實并不復雜, 而實際使用中, 硬件的 SADDR + SADEN 對串口的性能提升,幫助其實不大。所以,沒有什么好可惜的。
回復

使用道具 舉報

9#
ID:47286 發表于 2022-4-16 00:26 | 只看該作者
188610329 發表于 2022-4-15 16:23
這個功能, 其實現在用處已經不大了, 只不過被保留了下來, 現在單片機速度都很快了, 自己寫幾行代碼, 利用 ...

你說的是 可能我有點強迫癥吧 總是擔心

記得和你說過 我有一套自己用的系統 基本是以太網的概念 只不過用485傳輸 不用局域網是轉LAN模塊體積大 成本高 另外資源開銷 耗電量 以及速度 實際上TCP/IP是一個效率非常低的協議 大概只有30%吧 因為有很多固有信息層

這個系統分三層 主控 子控和執行 之間的協調指令 數據傳輸 都是靠串口 先不說速率和帶寬問題 起碼是需要很頻繁的產生串口中斷 最早用8位通訊 軟件判斷地址 后來用9位 先判斷地址 那么其實每次接收都會產生中斷 不管是不是呼叫自己 至少要收一位來判斷地址用 用單片機硬件功能的話 至少可以不產生中斷了 我用cpu都是往死里用 只要還能干就讓它多干 頻繁的中斷總是有可能影響其它函數 因此有點喜歡這功能
回復

使用道具 舉報

10#
ID:624769 發表于 2022-4-16 02:58 | 只看該作者
dzbj 發表于 2022-4-16 00:26
你說的是 可能我有點強迫癥吧 總是擔心

記得和你說過 我有一套自己用的系統 基本是以太網的概念 只不 ...

你說的這些都對。所以,我也只是說在如今單片機速度越來越快的今天, 硬件SADDR+SADEN 幫助不大,不是完全沒有用。

以下這個是建議,供你在非串口1前提下參考。(我串口1多用作同步移位寄存器,硬件操作HC595或者DS1302這些,這一點也是屬于榨干單片機的性能,應該屬于和你類似的強迫癥吧)
串口中斷,沒有你想象的那么消耗資源,如果,你只是進入中斷 讀一下RB8 的話,其實這個動作可以忽略不計。所以,當用串口2,3,4, 做從機的話,先讀RB8, 如果不是送地址,直接拋棄。繼續休息,如果是地址才比較地址,然后,決定,是否接受余下的數據。那么,對于1T單片機來說,這個串口中斷的影響可以忽略不計。而這種軟件的 SADDR +SADEN 方式,有一個硬件方式沒有的優勢,可以接受廣播地址(類似TCP/IP)。你可以判斷,是否是針對所有從機的廣播。而硬件方式,就無法實現這個功能了……
回復

使用道具 舉報

11#
ID:47286 發表于 2022-4-16 12:44 | 只看該作者
188610329 發表于 2022-4-16 02:58
你說的這些都對。所以,我也只是說在如今單片機速度越來越快的今天, 硬件SADDR+SADEN 幫助不大,不是完 ...

收到 多謝回復

請教一下 串口1只有2根線 怎么操作DS1302 那東西不是要3根線嗎 而且也不是串口通訊 你意思是通訊線占用串口1的兩根線嗎 那意義何在呢 1302并不會主動發送靠中斷產生響應吧 這樣相當于占用一個通訊口和一個中斷 是不是反而浪費了

中斷開銷的問題 有你的解釋我就釋然多了 看來串口234還可以再挖一下潛力

另外互通一下信息 硬件地址判斷可以廣播 FF是默認的廣播地址 線上的所有串口都會響應
回復

使用道具 舉報

12#
ID:624769 發表于 2022-4-16 15:25 | 只看該作者
dzbj 發表于 2022-4-16 12:44
收到 多謝回復

請教一下 串口1只有2根線 怎么操作DS1302 那東西不是要3根線嗎 而且也不是串口通訊 你 ...

串口1的 "同步寄存器模式" 是把 TX 用作時鐘線(CLK), RX用作數據線(IO)來進行傳送的。
當 SCON = 0x00; 的時候, 你把要發送的數據 寫入 SBUF,  就會觸發 串口開始工作,從TX發出8個時鐘,并且從RX 按 低位在前(LSB)的格式,把數據發出去,發送完一整個字節之后,會TI置1,你查詢方式也好,中斷方式也好,得到TI == 1 這個信號之后, 繼續清TI  寫 SBUF 發送下一位, 這是一個非常高效的方式,在用連續寫,連續讀的方式的時候,完全不影響單片機的其他工作,不用像 模擬方式那樣,用for循環 一個一個位的發出去。接收的時候,一樣道理,當RI =0, REN =1 則會TX發出8個時鐘, RX依次讀取 外部IO 的電平, 全部接收后 寫入SBUF 并且 RI 置1, 你查詢也好,中斷也好,繼續后續操作即可。
驅動 DS1302 需要多用一個單片機 IO 來控制 CE, 不過,這里有一個問題,就是DS1302 速度比較慢,而串口1的同步移位寄存器速率不可調,需要把晶振調到 6MHz 以下才能比較穩定傳輸,不是非常合算。(我前文提到DS1302主要是舉個例子,并不推薦這樣操作DS1302) 實際上,串口1我主要是 操作HC595, 他速率高到27MHz 就算 我MCU 主頻開到最高,也能穩定傳輸,對于驅動大面積點陣,用串口1可以有效避免在定時器中斷里耗費大量的時間。

然后說一下,串口的“廣播” ,我的意思是,如果是非硬件地址判斷,你可以自由的建立廣播小組,比如:0xFF 是所有從機, 0x1F 是,1號到20號機   0x3f 是21到40 號機,也不需要什么掩碼去限制,甚至完全不需要去考慮掩碼等等,這些完全可以自由定義,甚至 可以把從機數量  增加到 65000 臺 用16位從機地址。而不需要 受到 硬件SADDR + SADEN 的束縛,主要想表達,有失也有得的意思。
回復

使用道具 舉報

13#
ID:47286 發表于 2022-4-16 22:38 | 只看該作者
188610329 發表于 2022-4-16 15:25
串口1的 "同步寄存器模式" 是把 TX 用作時鐘線(CLK), RX用作數據線(IO)來進行傳送的。
當 SCON = 0x ...

感謝降解 明白了

1302的意思理解 但感覺有點浪費 哈哈

595暫時還沒用到 因為牽涉到端口擴展之類的應用很少 所以沒怎么接觸

廣播的說法受益了 你說的分組廣播我還真沒想過 感覺是個挺有用的方法 不過還好 我做了個配置文件 里邊會定義單片機型號 比如STC12系是6 15系是11 8系是15 如果15系之后并且定義9位傳輸 編譯時自動用SADDR中斷服務 如果之前則自動用非SADDR中斷服務 將來遇到需要分組廣播 可以比較容易的改回去
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品中文字幕视频 | 亚洲成人999 | 亚洲免费三区 | 国产午夜精品一区二区三区 | 一区二区三区四区毛片 | 日韩精品在线观看免费 | 成人a视频在线观看 | 在线观看成人精品 | 北条麻妃视频在线观看 | 欧美精品一二三区 | 日韩免费高清视频 | 久久久一二三 | 第一色在线| 视频一区二区中文字幕 | 欧美日韩视频 | 偷派自拍 | 久久精品视频在线观看 | 国内精品在线视频 | 日日操夜夜操天天操 | 伊大人久久 | 人人射人人插 | 日一区二区| 亚洲精品久久久一区二区三区 | 精品国产成人 | 视频在线观看亚洲 | 一区二区三区四区毛片 | 国产亚洲一区二区三区 | 九九在线视频 | 国产男女视频网站 | 亚洲欧美在线视频 | 国产精品99久久久久久动医院 | 久久91av| 欧美一区二区视频 | 日韩国产一区二区 | 丁香综合 | 99国产精品一区二区三区 | 一区精品在线观看 | 国产视频在线观看一区二区三区 | 96久久久久久 | 国产成人91| 91视频进入 |