This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
SDK 版本6.40
我打开了两个 UART 通道,一段时间后, writeCallbck 没有返回,我怎么能找到这个问题。
当 UART2_WRITE 和 writeCallback 时 I 打印计数,发生问题时、 writeCount 大于 callbackCount
代码 如下
UART2_Params 参数;
size_t bytesRead = 0;
/*创建一个处于默认读写模式阻塞的 UART */
UART2_params_init (¶ms);
params.readMode = UART2_Mode_callback;
params.writeMode = UART2_Mode_callback;
params.readCallback = USER_UART_uart2ReadCallback;
params.writeCallback = USER_UART_uart2WriteCallback;
params.baudrate = 115200;
uartHandle2 = UART2_open (CONFIG_UART2_0、¶ms);
params.readCallback = USER_UART_uartReadCallback;
params.writeCallback = USER_UART_uartWriteCallback;
uartHandle = UART2_open (CONFIG_UART2_1、¶ms);
如果(uartHandle2 == NULL){
/* UART2_OPEN()失败*/
while (1);
}
if (uartHandle == NULL){
/* UART2_OPEN()失败*/
while (1);
}
UART2_rxEnable (uartHandle2);
UART2_READ (uartHandle2、uartRead2.buf、sizeof (uartRead2.buf)、&bytesRead);
UART2_READ (uartHandle、uartRead .buf、sizeof (uartRead。buf)、&bytesRead);
您好!
感谢您联系 E2E。
回调不返回时是否发生故障或异常?
回调中发生了什么情况?
此致!
N·贝赫马内什
尊敬的 Nima:
回调不返回时无异常
当我再次调用 UART2_WRITE 时、返回-8和硬故障
发布消息、在回调中调用 UART2_WRITE
您好!
返回值-8 表示发生了 FIFO 溢出。
SYSCFG 中的 TX 环形缓冲区设置的大小是多少?
您可以进入 SYSCFG -> UART2 -> TX 环形缓冲区大小 。 您可能需要增加该值。
您调用 UART2_WRITE 的频率如何?
此外、您还想附上所发生硬故障的屏幕截图吗?
此致!
N·贝赫马内什
尊敬的 Nima:
TX 环形缓冲区大小为512字节,调用一次 UART2_WRITE 50ms。
您需要什么信息以及如何连接这些信息。
谢谢
您好!
感谢您提供的信息、这对我们非常有帮助。
请查看此内容 链接以了解有关如何为硬故障提供什么的信息。 此外、当触发故障时、它应该会在调试期间在控制台窗口中提供有关故障类型的更多信息。 我还需要这方面的屏幕截图。
此致!
N·贝赫马内什
你好,Nima,很抱歉迟到了
屏幕截图 如下:
您好、Jahn、
很抱歉,我的回复太迟了。 可能发生的情况是上溢/下溢。 您能否验证是否正确填充 UART 缓冲区? 同时、我将努力重现此问题。
此致!
N·贝赫马内什
尊敬的 Nima:
如何验证填充是否正确?
您好、Jahn、
您可以通过验证用于写入字节的缓冲区来进行检查。 您是否愿意提供写入 UART 的代码?
此致!
N·贝赫马内什