看板 MATLAB 關於我們 聯絡資訊
大家好: 我嘗試用matlab建立serial port來接收圖片(UART傳輸) 但收到的圖片有時會跑掉 有時是正常的結果 如圖所示: http://imgur.com/tbPd1E1 左邊是正常的情況 右邊是偏掉的情況 如果往左偏掉的話,原本圖最左邊的部分會跑到右邊 下面是我的程式碼: clear all close all s = serial('COM3','BaudRate',115200, 'Parity', 'none','DataBits',8,'StopBits',1); s.InputBufferSize=200000; s.timeout=20; fopen(s); flushinput(s); D=fread(s,[200,200]); E=fread(s,[200,200]); F=fread(s,[200,200]); image_RGB(:,:,1)=D; image_RGB(:,:,2)=E; image_RGB(:,:,3)=F; imwrite(image_RGB/256,'myimage.jpg','jpg'); imshow(image_RGB/256); fclose(s); fclose all; 不知道哪邊還有改善的部分? 還請大家不吝指教 Orz 謝謝X -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.103.106 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1465475036.A.10A.html
gR7P4zXH: 有傳送端的嗎 06/10 19:54
jb679123: 傳送端是寫在FPGA裡 裡面的memory先存好圖片 06/10 23:12
jb679123: 然後再用UART傳給電腦 06/10 23:13
jb679123: g大覺得是送端的問題嗎? 06/10 23:14
gR7P4zXH: 猜是,但我沒玩過FPGA。 06/11 13:36
jb679123: 如果是FPGA的問題 那應該不會收到正常的圖片? 06/11 13:45
gR7P4zXH: 我用過arduino讀sd卡的圖片,用uart透過FT232傳回matlab 06/11 13:47
gR7P4zXH: ,因為途中有傳錯幾次,所以加入CRC做檢驗。Serial有可 06/11 13:47
gR7P4zXH: 能傳錯嗎? 06/11 13:47
jb679123: CRC指的是加上parity bit嗎? 之前也有考慮這方式 06/11 15:06
jb679123: 但感覺他是偏移掉跟傳錯好像不太相同 06/11 15:08
gR7P4zXH: 我幫不上忙OAO 06/11 16:35
jb679123: 感謝g大的意見Orz 06/11 17:32
ryanwang: MATLAB是列(row)優先, C語言行(column)優先 06/13 00:57
ryanwang: 應該是1維轉2維排列順序搞錯 06/13 01:01
jb679123: 不過圖片有時候是收到正確的結果 06/13 20:01
jb679123: 如果是轉換錯誤的話應該不會出現正常的情況? 06/13 20:02