程序在使用USB CDC串口打印输出。在没有BLE_UART的情况下,基本正常。加入BLE_UART示例后,一行字符串就只能打印出第一个字符。
代码如下:
_write()函数被改写,以便printf之类的函数可以使用USB输出。
主循环:
程序在使用USB CDC串口打印输出。在没有BLE_UART的情况下,基本正常。加入BLE_UART示例后,一行字符串就只能打印出第一个字符。
代码如下:
_write()函数被改写,以便printf之类的函数可以使用USB输出。
主循环:
您好,打印库传来的包长,有在SendUSBData接口中做分包吗,注意包长最多64字节。
若USB发包包长正好时64字节的倍数,需要再发一包0长度包,这是USB批量传输的规范;如果用到了休眠,注意在sleep.c的CH59x_LowPower(以592为例)接口中,等待USB全部打印完再休眠。原本对于串口打印的休眠等待代码块如下图。
是这两行代码导致的问题:
估计是占用内存太多了,在同时使用USB和BLE的情况下,内存不足了。缩小两个缓冲区的大小,问题就解决了。
例子中为什么要定义如此大的缓冲区?
您好,BLE连接间隔期间交互的UART包字节数,与BLE连接间隔、UART波特率、无线通信质量等因素有关,连接间隔越长,波特率越高,无线环境干扰越强,需要的UART接收(UART收,BLE发)缓存越大,而需要的UART发送(BLE收,UART发)缓存越小。
此处改小也是可以的,以实际可用的大小为准。