打印
[其他ST产品]

UART通信,接收的数据总是不对

[复制链接]
718|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2024-7-25 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用STM32的UART功能发送0x33,用电脑里的串口助手接收数据,是00 66。。。这中间应该是某个地方上,单片机和串口助手的通信有差别造成的吧。但是自己一直没想明白其中的原因。还望同志们不吝赐教!!谢啦
附上UART的设置:
UART2_DeInit();
  /* UART1 configured as follow:
        - BaudRate = 9600 baud  
        - Word Length = 8 Bits
        - One Stop Bit
        - No parity
        - Receive and Transmit enabled
        - UART1 Clock disabled
  */
  UART2_Init((uint32_t)9600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO,UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
UART2_Cmd(ENABLE);

UART2_SendData8(0x33);
while (UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET)
{
}

使用特权

评论回复
沙发
ClarkLLOTP| | 2024-7-25 19:49 | 只看该作者
波特率不匹配吗

使用特权

评论回复
板凳
Bowclad| | 2024-7-26 11:28 | 只看该作者
看看是上位机的波特率是不是不对

使用特权

评论回复
地板
kqh11a| | 2024-7-29 14:24 | 只看该作者
波特率(Baud Rate): 9600
数据位(Data Bits): 8 位
停止位(Stop Bits): 1 位
校验(Parity): 无校验
这些设置需要与串口助手中的设置完全一致。

使用特权

评论回复
5
elephant00| | 2024-7-30 16:58 | 只看该作者
波特率不匹配把

使用特权

评论回复
6
jcky001| | 2024-7-30 16:59 | 只看该作者
数据位、停止位和校验位不匹配

使用特权

评论回复
7
cr315| | 2024-7-30 16:59 | 只看该作者
帧错误?

使用特权

评论回复
8
laocuo1142| | 2024-7-30 17:00 | 只看该作者
检查接收方的缓冲区是否足够大,以防止在数据处理过程中发生溢出。

使用特权

评论回复
9
flycamelaaa| | 2024-7-30 17:02 | 只看该作者
时钟同步问题

使用特权

评论回复
10
powerantone| | 2024-7-30 17:02 | 只看该作者
检查UART接收中断服务例程或轮询逻辑是否正确。

使用特权

评论回复
11
stormwind123| | 2024-7-30 17:02 | 只看该作者
检查UART接口的TX(发送)、RX(接收)、GND(地)等引脚连接是否正确,无短路或断路。

使用特权

评论回复
12
classroom| | 2024-7-30 17:03 | 只看该作者
电源和接地有无问题

使用特权

评论回复
13
裤脚口感好| | 2024-7-31 23:55 | 只看该作者
这段代码中,UART2_SendData8(0x33) 发送数据0x33,然后使用UART2_GetFlagStatus(UART2_FLAG_TXE) 检查传输是否完成。您可能需要考虑使用UART2_GetFlagStatus(UART2_FLAG_TC)来检查数据发送是否完成,这样可以确保数据发送完全。

使用特权

评论回复
14
jotliu| | 2024-8-1 10:54 | 只看该作者
波特率不匹配

使用特权

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

本版积分规则

2016

主题

7237

帖子

10

粉丝