STM32f103CB的硬件fifo大小是多少?如何知道fifo是空的还是满的



如标题所述,我在数据表中找不到相关信息。

我在使用UART时遇到一些问题。我有两个芯片,主芯片将包传输到RS485总线,从芯片接收后再传输响应(UART1(,同时,定时器每秒都会通过TTL(UART2(将调试数据传输到pc,它们应该是相互独立的,但UART2工作时UART1不工作,数据仍在从主芯片传输到RS485母线,所以当从芯片使用UART2时,一些数据不会被从芯片接收到,过了一段时间,从芯片上的整个系统变得奇怪(计时器仍在工作(,我想这是FIFO溢出。所以我要求函数或方法来了解fifo的大小。

谢谢。

正如Codo所评论的,该芯片没有USART的FIFO。

过了一段时间,从芯片上的整个系统都得到了奇怪的

所以您的问题不是由FIFO不足引起的。

除了使用DMA进行传输外,您还可以在传输时使用中断抢占进行接收。

uart2_rcv_isr() {
receive_from_uart2();
}
timer_isr() {
mark_flag_for_uart1_transfer();
}
main() {
if(flag_for_uart2) {
reply_with_uart2();
unflag_uart2_task();
}
if(flag_for_timing_task) {
transfer_with_uart1();
clear_timing_task_flag();
}
}

最新更新