1樓:
肯定的啊,串列埠通訊你按9600,n,8,1 即8位資料(2進位制 2的8次方0-255)最大就是0xff即10進位制的255.
如果出現大於255的資料比如256,那麼就是0x100。而你接收端只接收到00了。。
所以如果傳送超過255的資料需要用2個8位暫存器 超過65535就要3個8位暫存器。。
然後在接收側採用比如r0,r1 ,r0是低8位r1是高8位
c的話就需要定義一個合適的暫存器大小比如255以內是char 65535以內是int 在大就需要long瞭然後用或的方式合併接收到的高8位
51微控制器怎麼通過串列埠通訊在數碼管的顯示大於255的值
2樓:匿名使用者
不管十進位制,還是16進位制,在記憶體中都是以二進位制的形式儲存的
十六進位制專ff 和十進位制 255 在記憶體
中都是 1111 1111
這種分離個屬十百的方法邏輯上沒什麼值得懷疑的
寫成十進位制還是十六進位制不影響計算結果
bai=x/100;你將100換成0x64結果是一樣的
我們應用10 進位制已經很習慣了,編譯器也認識,何必將其再化成二進位制或者16進位制呢
串列埠助手大多有兩種傳送方式:十六進位制數,但有的只能發單個字元的十六進,如f可以當15 但ff 就發不出去
二是文字模式,即每個字元的asci 碼,如1 發的是0x31即十進位制的49
12就當49 和50兩次發出去
高階一點的串列埠助手,象ffh,0xff,255都可以當十六進位制數發出去,但為了防止出錯,還是應該格式統一
3樓:崔運生
這個,建議多看一些有關編碼的知識。
串列埠助手「以16進位制傳送資料」時,軟體會先將「專ff」轉換屬成8位二進位制資料「11111111」即十進位制資料「255」傳送出去。微控制器接收到的實際上也是二進位制資料「11111111」。
而你的微控制器**中「bai=x/100;"是我們人類的思維模式,編譯器將**編譯時,實際上進行的運算是"bai=x/0b01100100"。
51微控制器與vb通過串列埠通訊,微控制器為什麼只能傳送0至255的數?然後怎麼解決(發大於255的數)???
4樓:匿名使用者
傳送大數,你只能多次傳送,一次只能傳送一幀,而串列埠傳送的一幀可能是7、8、9位,由你設定而定。
5樓:
51微控制器是8位的,一次只能處理8位資料,也就是一個位元組,一個位元組只能表示0-255的大小的資料。
6樓:匿名使用者
一個位元組確實只能是0-255,但你可以連續發兩個位元組然後在vb裡面組成一個大於255的數。
比如發257就是0x01,0x01
7樓:匿名使用者
資料型別是char型只能是0-255
發int就會大了
串列埠最大一個資料是8位的,可以用多個位元組表示一個資料啊
8樓:匿名使用者
可以傳送多次,分別發這個數的個十百千萬位。然後用程式組合
為啥我用串列埠助手向plc傳送的資料只存在一個暫存器裡面。傳送大於ff的資料就亂了。 10
9樓:匿名使用者
暫存器 是 幾位的?byte 或者 word ?
串列埠通訊問題,為什麼高8位乘上256(2的8次方)加上低8位=t1?
10樓:匿名使用者
串列埠通訊問bai
題,是電腦du串列埠收到兩個位元組的zhi資料,分別為高8位和低dao8位,電腦再內恢復成16位資料吧
容。舉例分析,假如t1=0x0213,高8位為02h,低8位為13h,變成十進位制數是256+19=375。接收的就是高8位是02h,低8位是19h。
可是c語言要恢復成16位的數,必須要經過計算得到。t1=2×256+19=375。
什麼微控制器的串列埠數量最多
採用微控制器採集時動態範圍大於2的8次方是指什麼呢?
11樓:匿名使用者
微控制器採集時首先是能過ad將模擬
訊號轉為發字訊號,一般微控制器的模擬回訊號輸入範圍是0到5v,如果ad模組的答精度是8位,那麼獲得的數字訊號是0-255之間的整數,動態範圍是2的8次方即256,如果ad模組的精度是10位,那麼獲得的數字訊號是0-1023,動態範圍是2的10次方即1024,如果要求動態範圍大於2的8次方,那麼9位10位和12位的ad轉換模組均滿足求
微控制器串列埠怎麼接收超過255位元組的資料,陣列只能存放255位元組,有什麼方法可以實現不間斷的接收
12樓:匿名使用者
和你定義的資料型別有關,char就是256位元組 的,你只要不關閉串列埠自然會一直接收的。
13樓:匿名使用者
1、如果開發上位機,然後採用串列埠與下位機微控制器通訊,之後將採集的資料不斷回傳到上內位機資料庫中儲存,該方案容適合大量資料的採集和處理
2、如果僅希望儲存於微控制器中,在記憶體允許的情況下,定義一個更大的陣列,自然可以實現一定資料量的實現不間斷的接收
3、更多交流參考我空間主頁有關文章
14樓:做而論道
陣列只能存放255位元組,.....
----
你為什麼不定義大一些的陣列呢?
51微控制器串列埠通訊傳送多個位元組的問題
15樓:徐貴洪
你的程式反應你的思路。思路有問題,結果就有問題。顯示就一直放在迴圈 不要加什麼條件判斷避免意外的閃爍,中斷裡面(可以不看建議 最好分兩次,資料,資料的反碼來校驗資料的正確性)關鍵來了 :
進去之後把ren暫存器關了禁止接收。處理完裡面的事情在把它開啟。傳送端每發一次需要等待一次 ,處理是需要時間的。
多少可以估計的出來 大一點一般。好就這樣就能解決
16樓:做而論道
串列埠通訊,每次,只能是一個位元組,即:0~255。
0~65535,就要用兩次。
0~65536,就要用三次。
這麼多位元組的傳送,樓主是怎麼傳送的?
17樓:珠山龍少
能提供一下原理圖嗎?你的接收函式也有問題。
18樓:桀驁
照抄了樓主最後那無比精妙的if語句,我的程式果斷活了。
51微控制器的串列埠io(txd,rxd),能否同時接到兩片ma
理論上是可以的,但你必須從應答的流程上保證,在任意時刻最多只能有一個從 版機在傳送資料,這權點要考慮清楚。另外,txd,rxd可能驅動不了這麼多口子,最簡單的辦法,你可以將訊號輸入到一個74ls04,以增強其驅動。可以!用一片cd4052晶片把txd rxd分接到兩片max232晶片中去。cd405...
51微控制器串列埠通訊接收的過程的疑問
第一,接收資料時如果有高階別中斷產生,那麼將響應該中斷,接收資料將失敗,資料丟失。第二 響應中斷後,沒有退出中斷前,如果繼續有資料傳送過來,那麼後傳送過來的資料將丟失。關於微控制器串列埠收發過程的幾個疑問 微控制器程式設計 原則,所有中斷 程式 應該儘可能 簡短小,如 串列埠 中斷 只把接收 的資料...
一下STC帶串列埠的微控制器,不要模擬串列埠的。引腳越少越好。至少3k flash。帶內部振盪器的
自己上stc官網查查啊 stc15f204ws stc15f104w sop8,最適合你用了!採納吧!推薦一款引腳少並且帶雙串列埠的stc的微控制器 你看看stc15f104e微控制器吧,8腳的。不過內部資源不多。p89lpc904微控制器也是8腳的,內建有ad da轉換器。attiny13也是8腳...