在ESP32C3的技术参考手册中,UART的RAM共分为4个Block,每个Block128个字节,分别给UART0/1中不同的TX/RX,其中提到了可以修改几个空间的大小。这个大小在手册中提到,设置UART0的UART_TX_SIZE为2,则UART0的Tx_FIFO的地址从0扩展到255。这时,UART1的Tx_FIFO的默认空间被占用,这时将不能使用UART1发送器功能。
在IDF框架中,uart_driver_install有两个参数为rx_buffer_size/tx_buffer_size,这个大小是否应该满足:Rx_buffer_size应该大于UART_FIFO_LEN。Tx_buffer_size应该是0或者大于UART_FIFO_LEN。
那么,uart_driver_install和UART的RAM的配置不是一回事,是吧?
那么,如果我想修改UART0的UART_TX_SIZE为2该如何操作?
ESP32C3串口缓冲区的问题
Re: ESP32C3串口缓冲区的问题
rx_buffer_size/tx_buffer_size 跟你说的FIFO size 并不是一回事,这是软件的 buffer,也就是硬件 FIFO 读取到数据后会自动存储到这些 buffer里面。你说的UART_TX_SIZE这个我们在软件层并没有实现,可以认为目前软件是不支持的。主要的原因是 FIFO 设置为 128 字节一般已经足够使用了,也许你们可以告诉我们必须要设置为 256 字节的理由,我们来评估是否需要设计驱动的接口。
-
- Posts: 37
- Joined: Fri Dec 24, 2021 12:40 pm
Re: ESP32C3串口缓冲区的问题
接口纷繁杂乱并不是一个好现象,所以我支持不把所有功能都实现接口
但我觉得,如果有同学或同事想整条链用起来,应该对技术手册和IDF开发框架进行对应理解,然后看看IDF框架实现,这样无遗是一种较好的提升或者交流学习,所以,我问这个问题就是想搞清楚,没有别的意思
但我觉得,如果有同学或同事想整条链用起来,应该对技术手册和IDF开发框架进行对应理解,然后看看IDF框架实现,这样无遗是一种较好的提升或者交流学习,所以,我问这个问题就是想搞清楚,没有别的意思
-
- Posts: 37
- Joined: Fri Dec 24, 2021 12:40 pm
Re: ESP32C3串口缓冲区的问题
硬件FIFO读取到数据后会自动存储到这些buffer里面,这个是会占用CPU时间吗?还是IDF底层就完成好的?
Who is online
Users browsing this forum: No registered users and 54 guests