USB CDC串口輸出與BLE_UART示例沖突

程序在使用USB CDC串口打印輸出。在沒有BLE_UART的情況下,基本正常。加入BLE_UART示例后,一行字符串就只能打印出第一個字符。

代碼如下:


_write()函數(shù)被改寫,以便printf之類的函數(shù)可以使用USB輸出。

image.png

主循環(huán):

image.png


您好,打印庫傳來的包長,有在SendUSBData接口中做分包嗎,注意包長最多64字節(jié)。

若USB發(fā)包包長正好時64字節(jié)的倍數(shù),需要再發(fā)一包0長度包,這是USB批量傳輸?shù)囊?guī)范;如果用到了休眠,注意在sleep.c的CH59x_LowPower(以592為例)接口中,等待USB全部打印完再休眠。原本對于串口打印的休眠等待代碼塊如下圖。

image.png


是這兩行代碼導致的問題:

image.png

估計是占用內(nèi)存太多了,在同時使用USB和BLE的情況下,內(nèi)存不足了??s小兩個緩沖區(qū)的大小,問題就解決了。

例子中為什么要定義如此大的緩沖區(qū)?


您好,BLE連接間隔期間交互的UART包字節(jié)數(shù),與BLE連接間隔、UART波特率、無線通信質(zhì)量等因素有關(guān),連接間隔越長,波特率越高,無線環(huán)境干擾越強,需要的UART接收(UART收,BLE發(fā))緩存越大,而需要的UART發(fā)送(BLE收,UART發(fā))緩存越小。
此處改小也是可以的,以實際可用的大小為準。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频