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

what is the the hardware fifo size of STM32f103CB and how to know whether the FIFO is empty or full?

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

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

谢谢。

正如 Codo 评论的那样,该芯片没有带 USART 的 FIFO。

after a while whole system on slave chip get weird

所以你的问题不是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();
   }
}