程序在使用USB CDC串口打印輸出。在沒有BLE_UART的情況下,基本正常。加入BLE_UART示例后,一行字符串就只能打印出第一個字符。
代碼如下:
_write()函數(shù)被改寫,以便printf之類的函數(shù)可以使用USB輸出。
主循環(huán):
程序在使用USB CDC串口打印輸出。在沒有BLE_UART的情況下,基本正常。加入BLE_UART示例后,一行字符串就只能打印出第一個字符。
代碼如下:
_write()函數(shù)被改寫,以便printf之類的函數(shù)可以使用USB輸出。
主循環(huán):
您好,打印庫傳來的包長,有在SendUSBData接口中做分包嗎,注意包長最多64字節(jié)。
若USB發(fā)包包長正好時64字節(jié)的倍數(shù),需要再發(fā)一包0長度包,這是USB批量傳輸?shù)囊?guī)范;如果用到了休眠,注意在sleep.c的CH59x_LowPower(以592為例)接口中,等待USB全部打印完再休眠。原本對于串口打印的休眠等待代碼塊如下圖。
是這兩行代碼導致的問題:
估計是占用內(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ā))緩存越小。
此處改小也是可以的,以實際可用的大小為準。