如何解决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();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。