㈠ 如何使用RS232串口通信
RS232串口通信,可以是單片機與單片機,單片機與電腦,電腦與電腦,或者其它什麼兩個設備就可以通信的。你要什麼設備看
要是有單片機,不但要在硬體上,用串口線連接兩個,還要給單片機寫程序的。你問不明確的。
㈡ RS232串口通信的程序怎麼寫啊
c或vb中有mscomm控制項很好用,我常用,以下是我用delphi寫的
with mscomm1 do begin
commport:=1; //埠號
settings:=9600,n,8,1; //埠設置
InputMode:=0; //設置或返回Input屬性取回的數據的類型 0:文本 1:二進制
RThreshold:=1; //每次接收到字元即產生OnComm事件
SThreshold:=0; //傳輸緩沖區允許最小字元數
InBufferCount:=0; //清空接收緩沖區內容
InputLen:=0; //為0時 Input一次讀取整個緩沖區內容
DTREnable:=true; //數據終端准備好
RTSEnable:=true; //發送請求
end;
mscomm1.Output:=edit1.text;//發送
str:=mscomm1.input; //接收
㈢ 有沒有用過RS232控制過電源E3631A的同學
今天也用串口調試工具 與 python腳本測試了一下
在rmt模式下 串口看來只能發最基礎的命令 像查詢可能不支持
查閱手冊 除了2-3交叉 還有 2組需要交叉 不知道是不是因為這個可能不能實現查詢命令?
因為連最基本的*IDN?都執行不了的話 其他的查詢就更不用提了
電源是安捷倫的E3640A
基本的 VOLT X.X,CURR X.X,*SAV X,*RCL X 命令基本看來就夠用了 其他的就是設置一下檔位根據具體的儀器
使用python看來也實現起來比較方便 就是在命令後面 加上了 \n\r
摘自 水木 BBS
㈣ 如何控制RS232
什麼軟體都可以, 找針對的網上的RS232驅動教程,下載對應軟體的模塊驅動包。
至於你的發送信號輪循周期, 建議你看點通訊方面的書,避免出錯。
基本道理如下:(任何軟體)
找出對應串口初始化模塊程序 ---只執行一次
找出串口發送信號程序 --- 放入循環中,設置發送周期時間如50ms或100ms
找出串口關閉程序模塊 -- 放在循環最後,只執行一次。
看不懂以上的話,建議找最基礎的書來做個demo
㈤ 我的單片機有一個RS232的串口,但是控制兩個外設,可以怎麼做啊
這個需要你從硬體軟體上實現,硬體可以將RS232分為2個,然後軟體編程的時候發送一定格式的幀,需要標示下源地址與目的地址,這樣應該就可以了
㈥ 串口RS-232發送代碼問題
「商業軟體」串口發送和接收數據,發送的只能是字元串型的代碼,設備要收十六進制代碼
答案:
1、分析
發送字元串型,實際是一個一個字元發送的,設備也是一個一個十六進制代碼接受的。
應此,如果設備端要接收「55 01 01 02 01」這樣5個位元組的十六進制代碼,軟體端發送可以這樣,
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
不幸的是如果要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,由於裡面含有十六進制00(即0x00),0x00字元表示是'\0',在字元串中表示的字元串結束。
看你運氣了,如果程序的源代碼中發送字元串模塊,發送字元長度是通過判斷字元串長度(strlen)來工作的,那你怎麼也發送不出「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,從上看出
buff[5]=0x00;buff[6]=0x00;buff[7]=0x5a;時,你的軟體會認為字元串長度只有5。只會發送出「55 01 01 02 01」這樣5個位元組的十六進制代碼。如果你的軟體發送字元長度是根據你輸入或設定的,那能正常發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x5a;
2、解決辦法(不該源代碼的情況下)
做個中間件,需要用到PC的多個串口通道(串口不夠用多串口卡擴展),系統接線也要調整,如果是1對1(一套軟體對一個設備)
例如:軟體是用com1口發送接收,原來是直接com1口接設備,現在改成,com1口接com2口,com2口同時也接設備(注意RS232是可以三線通訊的,PC端com1口的2腳接com2口的3腳,com2口的3腳接設備的2腳,PC端com1口的3腳接com2口的2腳,com2口的2腳接設備的3腳,PC端com1口的5腳接com2口的5腳,接設備的5腳),這樣做的原理是通過com2口來正確發送給設備十六進制代碼。並且com1向com2發送的命令需要修改。例如
要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,軟體這端
發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中間件收到「55 01 01 02 01 ee ff ee ff 5a」這樣10個位元組的十六進制代碼,他就會進行轉換(0xee表示下個位元組需要轉碼,轉碼方法是減去0xff,那0xff實際就是0x00。)這樣通過中間件在com2口向設備發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
以上是發送,如果接收呢,同樣看商業軟體的接受機制,如果商業軟體收到0x00,實際就是'\0',表示一個字元串接受終止,那麼接收數據怎麼整都不能正常收到「55 02 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼(含0x00),那麼只有改寫源代碼一種方法。
3、後記
如果你的所謂商業軟體要求別人改源代碼不切實際,而且商業軟體也不復雜,可以找人重寫商業軟體了,現在做軟體外快的人太多了,拿公司軟體稍微改改,時間用不了多少,費用也不高,幾千吧
㈦ rs232串口通信如何實現
請把問題寫清楚,「rs232串口通信如何實現?」
你想問的是軟體編程?還是硬體?
匯編?還是高級語言?硬體電路?
串口通信的數據傳送方式?通訊協議?還是串口的介面功能的定義?
你這問題太大了! 就好比「你的電腦是如何工作的?」 起碼在這里解釋不完,你需要縮小范圍,至少換成別的,例如:「RS232串口的C/C++編程設計」、或者「51晶元RS232通訊匯編實現」、或者「RS232通訊如何同步」等等;
㈧ 求RS232串口控制智能步進電機控制器
上位機(PC機或具有串口的其他控制設備)通過RS232串口連接到本控制板後,向控制板發送一串ASCII代碼指令既可控制步進電機的轉向、轉速、步進量,完全不需了解步進電機及驅動器的工作原理。例如:串口發送"S100",則步進電機將順時針以每分鍾100轉的速度旋轉,串口發送"N300",則步進電機將逆時針以每分鍾300轉的速度旋轉;串口發送"S100J",則步進電機將順時針步進100個步距角,串口發送"N1000J",則步進電機將逆時針步進1000個步距角。用於精密轉速控制、精密運動控制、精密機械加工等,控制精度極高,轉速誤差<0.01轉/分鍾。也可按要求定製更高精度控制板。提供VB軟體控制步進電機的演示源代碼。
串口波特率9600~57600可預訂(默認9600);輸出驅動脈沖頻率最大200Khz(可訂制更高頻率),單步最小1hz微調,誤差0.1hz;最大步進量99999999步。
通過地址編碼,一個串口最多可以定址、控制255塊串口控制智能步進電機控制器,也就是說一個串口(或一台電腦)可以控制255台步進電機。串口控制智能步進電機控制器和控制主機之間距離可以通過485匯流排延長,這樣控制主機可以放置在離步進電機很遠的地方.
我們也可以為客戶開發特定的控制板或代為設計開發整個步進電機控制系統。
㈨ RS232遠程式控制制 怎麼控制的啊
控制超級終端的方法:
1、單擊→開始,選擇程序→附件→通訊→超級終端
2、左鍵單擊超級終端
3、雙擊Hypertrm出現如圖。在名稱(N):中輸入RS232,按確定
4、對話框的連接時使用(N):中,直接連接到串口1/2,按確認,COM1/2的屬性對話框。波特率(B)選擇9600,其它不變。按確定進入RS232超級終端界面並保存會話RS232。
注意事項
如果程序中沒有安裝超級終端,就在開始→設置→控制面板→添加刪除程序→安裝超
級終端。