你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
stm32f207ve芯片,使用rtthread操作系统,同时使用uart2、uart4、uart5同时发送数据,下一级设备接收到数据后立马回复数据,三条数据几乎同时接收,大概率会丢失数据,往往只能收到一条数据或者没有数据,但是如果将三条数据分开回复,间隔几毫秒则能正常接收。按道理来说三个串口不是独立工作的吗?为什么会有影响呢
举报
xmshao 发表于 2023-10-16 15:16 大概率是接收不过来,尤其是基于查询或中断方式的话。你可以考虑通过DMA来接收,有机会解决当前问题。 ...
应该是,使用的中断接收
中断处理中是不是有加打印或者其他的处理太多的过程?按照常规只接收数据,理论不会发生类似的问题。还有看一下中断时是否进行了现在保护操作,把现场保护操作去掉试试。
废鱼 发表于 2023-10-17 15:23 中断处理中是不是有加打印或者其他的处理太多的过程?按照常规只接收数据,理论不会发生类似的问题。还 ...
确实是,中断使用了临界区保护
void USART2_IRQHandler(void) { struct stm32_uart* uart; uart = &uart2; /* enter interrupt */ rt_interrupt_enter(); if(USART_GetITStatus(uart->uart_device, USART_IT_RXNE) != RESET) { rt_hw_serial_isr(&serial2); /* clear interrupt */ USART_ClearITPendingBit(uart->uart_device, USART_IT_RXNE); } if (USART_GetITStatus(uart->uart_device, USART_IT_TC) != RESET) { /* clear interrupt */ USART_ClearITPendingBit(uart->uart_device, USART_IT_TC); } /* leave interrupt */ rt_interrupt_leave(); }
串口+DMA发数据
串口DMA收发出现ORE错误
有使用过POWERBUS二总线芯片的吗
消防二总线通讯?
stm32使用hal库数据疑问
stm32使用hal库开发串口通讯问题
CUBEMX配置G474串口DMA传输,为什么接收正常发送不了?
简单聊聊STM32的SPI外设
关于STM32WB09使用CUBEMX进行配置的问题
stm32f746g-disco开发板的串口通讯连接方式
应该是,使用的中断接收
中断处理中是不是有加打印或者其他的处理太多的过程?按照常规只接收数据,理论不会发生类似的问题。还有看一下中断时是否进行了现在保护操作,把现场保护操作去掉试试。
确实是,中断使用了临界区保护