1樓:
不是你**的問題,硬體協議的問題
485是半雙工匯流排協議,232是全雙工匯流排協議,直接使用會出問題。
兩種解決辦法:
1,485有一條線是匯流排忙判斷(置位)線,把這條線的控制編到你的程式裡面控制一下。
2,買232轉422的轉換模組,232調好後,422可以直接用,不用改程式
2樓:匿名使用者
while(ri)是不對的,去掉應該就ok了。
uchar rxdata()
display2(1,0,dat);//lcd顯示return(dat);}
3樓:做而論道
想接受多個字元,先要制定通訊協議。
必須確認第一個字元是什麼,然後再繼續接收幾個。
4樓:藝嵌科技
485通訊如果你用的是一般單工的晶片的話,有一個控制引腳,通過其電平高低來確定是發資料還是收資料。我有一段時間沒有看了,先給你看一個程式試過應該可以的http://hi.
如果不行的話再討論哈!
5樓:愛微控制器生活
你那個返回出了問題,不能帶整個陣列的。
關於51微控制器接收rs485通訊語句的程式
6樓:
就是模板匹配啊,每個語句分成前模板和後模板,連續匹配對應則提取中間的字串。
7樓:一萬光年
每行是一陣資料嗎?
資料如何結束的?
跪求at89s51微控制器485通訊程式,哪位大俠幫忙解決一下。感激不盡!!!!!!!急!!!!!!!! 20
8樓:做而論道
不論是rs232,還是485,對於編寫程式來說,都是序列口通訊。
序列口通訊,是涉及雙方的,編寫任意一方的程式,都要考慮對方。
樓主給出的條件,有點少。
9樓:
編寫方法用串列埠就行了,其餘的只是轉換晶片而已
10樓:匿名使用者
你把你的232通訊調成功了,就可以了。不過兩個**不能放在一起吧。會衝突的。接收會衝突的。 這個485實現半雙工的。232卻是全雙工。
11樓:
電路圖給的太少,看不清楚!
51微控制器max485通訊問題
12樓:匿名使用者
485是半雙工的re/de控制電平是相反的嘛所以接在一起就可以了。如果用到的是從機的話,初始化的時候控制引腳使訊號為輸入方向,當樣傳送資料的時候,在向傳送暫存器裡裝資料的之前或者之後將控制引腳使訊號為輸出方向,在傳送中斷裡面再改為控制引腳使訊號為輸入方向。和電腦通訊的時候波特率要一致。
我用485通訊時,為什麼微控制器接受的資料和傳送的不一樣
13樓:匿名使用者
首先檢查結合你的晶振頻率波特率,波特率不正確的話,微控制器收到的是亂碼。
其次,如果收到的始終是0xff或0x00,那麼檢查一下485的方向是否正確,你可以在微控制器rx引腳上接示波器或萬用表來看是否有訊號輸入。
最後,中斷中的延時不需要
14樓:擺渡人生
首先 :51微控制器在讀取資料是要先賦值資料0xff!
其次 :中斷接收是不需要延時的 直接讀取!
最後:485接收 比如max485上有個控制腳 是要拉低的另外:還有個波特率問題別搞錯了
對照上面幾個問題 你再試試 一般不會超出這些範圍祝你成功!
15樓:匿名使用者
void series()interrupt 4
51微控制器呼叫子程式問題,怎樣51微控制器呼叫兩個子程式
直接跳回主程式,再初始化。怎樣51微控制器呼叫兩個子程式 5 天蠍神經俠侶 mov r0,08h mov a,0feh loop mov p1,a lcall del rr a djnz r0,loop 使用djnz 指令。為0執行下一指令,不為0跳轉。就可以呼叫內兩個容子程式了 估計是進入到倒計時...
用51微控制器調光,51微控制器pwm調光電路
你的電路構思不太好,目的一樣但是電路構成的方法有很多的,你這種辦法比較耗費元件,並且因為過多的原件而導致可靠性下降。實現你的要求有簡單的辦法,就是採用微控制器產生可控的pwm pwm pulse width modulation 控制 脈衝寬度調製技術。通過對一系列脈衝的寬度進行調製,來等效地獲得所...
51微控制器實驗遇到問題,89C51微控制器實驗中遇到的一個問題
上的位選和段選都是一個串列埠出來的,只是用了兩個鎖存器,通過改變鎖存器的選擇來選擇是位選還是段選,你這圖不存在這個 一般只是在做數碼管的動態掃描才有位選和段選 include sbit dula p2 6 sbit wela p2 7 void main 不知你的電路如何定義的,姑且猜一下了 inc...