如前所述,我在数据表中找不到相关信息。
我在使用UART时遇到了一些问题。我有两个芯片,主芯片将包发送到RS485总线线,从芯片接收到它,然后发送响应( UART1 ),同时,定时器将TTL( UART2 )发送到pc机,它们应该是相互独立的,但是UART2工作时UART1不能工作,而且数据仍然从主芯片传输到RS485总线,所以当从芯片使用UART2时,一些数据不会被从芯片接收到,当整个从芯片上的系统变得奇怪(定时器还在工作)之后,我猜是FIFO溢出。因此,我要求功能或方法,以了解fifo的大小保持不变。
谢谢。
发布于 2020-08-25 12:40:53
正如Codo评论,这个芯片没有FIFO与USARTs。
过了一段时间,整个从芯片上的系统变得奇怪了。
所以你的问题不是由先进先出的不足引起的。
除了使用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();
}
}https://stackoverflow.com/questions/63572677
复制相似问题