我們有一個定製的微控制器卡(ST32/ARM Cortex M3),它有一個攝像頭。相機以1280x1024分辨率捕捉10位灰度。我們需要通過串行將圖像數據發送回PC主機。這是相當大的數據;假設一切正常,在115200波特傳輸將是3分鐘。任何我爲確保魯棒性而執行的操作似乎都會減慢進程速度(例如,拆分成塊,校驗和塊,如果發生損壞則要求重新發送)。所以想知道人們如何在速度和誠信之間做出妥協。用於發送圖像數據的串行協議
我們目前正在看到約6分鐘的實際轉換時間。我們必須將UART波特率設置爲一個奇怪的值 - 1036800 - 因爲在115200時出現了問題(PC運行在115200)。我比硬件更軟件,所以任何想法爲什麼可能發生會有所幫助!
您的波特率計算結果偏離了9倍。也許您有一個72 MHz的部件,它使用8 MHz時鐘的x9 PLL,並且基於假設PLL爲活動的,但實際上在沒有PLL的情況下運行(或至少計時外設),比計算所假設的慢9倍。或者,也許你有一個預分頻器在外設時鐘 –