打印
[STM32F1]

stm32F103的串口不能同时发送和接收数据?

[复制链接]
1306|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renyaq|  楼主 | 2021-8-6 22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在定时器里向某个串口发送一串数据

       User_USART_SendData(USART3,0x01);
       User_USART_SendData(USART3,0x02);
       User_USART_SendData(USART3,0x03);
       User_USART_SendData(USART3,0x04);
       User_USART_SendData(USART3,0x05);
       User_USART_SendData(USART3,0x06);


把Uart3的Tx和Rx直接连接,再查看Uart3的RX端,结果只收到了0x01和0x02两个数据,其它的数据都丢了。

上面发送数据如果一个一个发送是不会有问题的,连续发送多个数据就只能接收到前面2个数据。某个串口在发送时,其它的串口也无法接收。

这个问题以前用003芯片时就有了,无法解决,想不到stm32也有这个问题,有解决办法吗?

使用特权

评论回复
沙发
spark周| | 2021-8-6 23:01 | 只看该作者

你判断数据发送完成了吗?     

使用特权

评论回复
板凳
stly| | 2021-8-6 23:04 | 只看该作者
或者增加延时也可以。         

使用特权

评论回复
地板
renyaq|  楼主 | 2021-8-6 23:07 | 只看该作者
STM32里面好像就3位的FIFO实现的。      

使用特权

评论回复
5
dengdc| | 2021-8-6 23:09 | 只看该作者
是不是发送和接收太占资源了,用空闲中断或DMA试试。

使用特权

评论回复
6
jiajs| | 2021-8-6 23:11 | 只看该作者
加上判断 UART_FLAG_TC 是否set

使用特权

评论回复
7
renyaq|  楼主 | 2021-8-6 23:16 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝