我们有一个定制的微控制器卡(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倍。或者,也许你有一个预分频器在外设时钟 –