[問題] RS232的傳輸問題已回收

看板MATLAB作者 (香腸)時間16年前 (2009/09/22 00:09), 編輯推噓0(0011)
留言11則, 3人參與, 最新討論串1/1
我的程式是這樣: scom = serial('com1');% 創建串列埠1的設備對象scom scom.Terminator='CR' %預設LR fopen(scom); % open com port for data transfer data(1) = 255; data(2) = 255; data(3) = 8; data(4) = 7; data(5) = 3; data(6) = 30; data(7) = 0; data(8) = 0; data(9) = 144; data(10) = 1; data(11) = 255 - (data(3) + data(4) + data(5) + data(6) + data(7) + data(8) + data(9) + data(10)); fprintf(scom,'%X',data,'async'); s.ValuesSent; 我的問題是這樣: 1. 我想要將data的值,用RS232以byte(8位元一組)的結構輸入至馬達 i.e data(4)一個byte、data(11)一個byte。 我參考了help的BytesToOutput、Writing Text Data與ValuesSent 但是還是無法正確傳輸封包(馬達沒有反應)。 而且網路上有用fprintf與fwrite兩種寫法我都試過 只差在倒數2行改成: fwrite(scom,data,'uint8','async'); 2. scom.Terminator的CR與LR是甚麼??我這部分看不太懂?? 有沒有板友知道要如何改進?? 請給我建議 謝謝各位的指教! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.185 ※ 編輯: wantai943 來自: 203.68.15.185 (09/22 00:14)

09/22 00:19, , 1F
baud rate? parity? cr=carrier lf=line feed
09/22 00:19, 1F

09/22 11:36, , 2F
先搞清楚馬達要的是什麼格式的封包
09/22 11:36, 2F

09/22 12:45, , 3F
設定是 !mode 9600,n,8,1
09/22 12:45, 3F

09/22 12:48, , 4F
TO 2F 格式是指int或char嗎??
09/22 12:48, 4F

09/22 22:00, , 5F
意思是馬達接受什麼樣格式的訊號 例如 255 10 13
09/22 22:00, 5F

09/22 22:01, , 6F
255是資料的head 13 是資料的tail 中間值是給馬達移動的參數
09/22 22:01, 6F

09/22 22:02, , 7F
sorry 你好像已經搞清楚這點了
09/22 22:02, 7F

09/22 22:04, , 8F
建議你用Vspdxp虛擬COM PORT的軟體 測試看matlab有沒送出你要
09/22 22:04, 8F

09/22 22:05, , 9F
的資料格式
09/22 22:05, 9F

09/22 22:07, , 10F
印象中預設 fwrite是binary送出 fprintf是以ASCII送出
09/22 22:07, 10F

09/24 18:59, , 11F
謝謝
09/24 18:59, 11F
文章代碼(AID): #1AjwKgxY (MATLAB)
文章代碼(AID): #1AjwKgxY (MATLAB)