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.
在阻塞模式(`UART_MODE_BLOCKING`)下使用 TIRTOS UART 驱动程序时、我有几个问题涉及 TIRTOS UART 驱动程序的行为:
1) 1)`uart_read()`文档显示“在 UART_MODE_Blocking 中,UART_read()阻止任务执行,直到已读取缓冲区中的所有数据” 。 以下哪个缓冲区是指的文档:
a)驱动程序的循环缓冲器;或
b)用户在`UART_READ()`调用中作为参数提供的缓冲区?
2) 2) 如果在`uart_read()`调用之间发生溢出、会发生什么情况? 缓冲区是被覆盖还是新数据被丢弃? 是否有建议的方法来测试此类超限?
3)在换行模式(`UART_READ()`调用中被阻止(`UART_RETURE_NEWLINE`)时、如果在没有接收到换行的情况下填充缓冲区会发生什么情况?
提前感谢。
您好!
我不是 TI-RTOS 专家。 话虽如此、以下是我的答案。
[引用 userid="380224" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1162886/tm4c129encpdt-tirtos-uart-driver-overrun-behavior "]1) 1)`uart_read()`文档显示“在 UART_MODE_Blocking 中,UART_read()阻止任务执行,直到已读取缓冲区中的所有数据” 。 以下哪个缓冲区是指的文档:
a)驱动程序的循环缓冲器;或
b)用户在`UART_READ()`调用中作为参数提供的缓冲区?
[/报价]我认为这是 用户提供的缓冲区。
[引用 userid="380224" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1162886/tm4c129encpdt-tirtos-uart-driver-overrun-behavior "]2) 2) 如果在`uart_read()`调用之间发生溢出、会发生什么情况? 缓冲区是被覆盖还是新数据被丢弃? 是否有建议的方法来测试此类超限?
[/报价]从硬件的角度来看、数据会丢失。
3)在换行模式(`UART_READ()`调用中被阻止(`UART_RETURE_NEWLINE`)时、如果在没有接收到换行的情况下填充缓冲区会发生什么情况?
[/报价] [引用 userid="380224" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1162886/tm4c129encpdt-tirtos-uart-driver-overrun-behavior "]3)在换行模式(`UART_READ()`调用中被阻止(`UART_RETURE_NEWLINE`)时、如果在没有接收到换行的情况下填充缓冲区会发生什么情况?
[/报价]下面是说明。 您是否正在使用 UART_DATA_TEXT? 根据我的解释、如果您处于 UART_DATA_TEXT 模式、并且缓冲区在没有接收到换行的情况下被填满、则它将继续阻止。