5.1.6串口緩沖區(qū)
在之前的示例程序中,我們都是采用人工輸入測試數(shù)據(jù)的方式檢驗程序效果,Arduino每接收到一次數(shù)據(jù),就會將數(shù)據(jù)放入到串口緩沖區(qū)中。
但是,當我們使用其他串口設備或者傳輸?shù)臄?shù)據(jù)量逐步增加后,你可能會發(fā)現(xiàn)寫入的數(shù)據(jù)會有一些丟失,這是因為Arduino默認設定了串口緩沖區(qū)為64字節(jié),說明串口緩存64B溢出后,后面的數(shù)據(jù)是丟棄的。
我們可以通過宏定義的方式來增大串口讀寫緩沖區(qū)的空間,Arduino核心庫中串口發(fā)送緩沖區(qū)宏名為SERIAL_TX_BUFFER_SIZE,串口接收緩沖區(qū)宏名為SERIAL_RX_BUFFER_SIZE?梢栽趆ardwareSerial.h中修改。
緩沖區(qū)實際上就是在Arduino的RAM上開辟臨時存儲空間,因此緩沖區(qū)的設定大小不能超過arduino本身的RAM大;又因為我們還要在RAM上,進行其他數(shù)據(jù)的存儲,所以并不能將所有RAM空間都分配作串口緩沖區(qū)。如果項目開發(fā)中,有增加串口緩沖區(qū)大小的必要,需根據(jù)項目情況酌情修改緩沖區(qū)大小。
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。