打印
[STM32F1]

stm32F103的串口不能同时发送和接收数据?有解决办法吗

[复制链接]
2204|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kt98741|  楼主 | 2019-9-3 08:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在定时器里向某个串口发送一串数据

       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也有这个问题,有解决办法吗?

使用特权

评论回复
沙发
51xlf| | 2019-9-4 23:37 | 只看该作者
你判断数据发送完成了吗?     

使用特权

评论回复
板凳
51xlf| | 2019-9-4 23:37 | 只看该作者
或者增加延时也可以。         

使用特权

评论回复
地板
51xlf| | 2019-9-4 23:38 | 只看该作者
STM32里面好像就3位的FIFO实现的。      

使用特权

评论回复
5
又东风| | 2019-9-7 23:09 | 只看该作者
是不是发送和接收太占资源了,用空闲中断或DMA试试。

使用特权

评论回复
6
joketinnle| | 2019-9-8 00:13 | 只看该作者
加上判断 UART_FLAG_TC 是否set

使用特权

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

本版积分规则

25

主题

51

帖子

1

粉丝