OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5169|回复: 3

关于STM32F103串口接收0x00问题

[复制链接]

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-5-21
在线时间
18 小时
发表于 2022-11-12 23:16:05 | 显示全部楼层 |阅读模式
串口接收包含0x00数据,就会省略掉0x00
用串口助手直连设备发送:56 00 11 00   返回:76 00 11 00 0B 56 43 30 37 30 36 20 31 2E 30 30

用单片机发送:55 00 11 00   返回:76 11 0B 56 43 30 37 30 36 20 31 2E 30 30

请教各位前辈,是什么原因。

USART_SendData(USART2,0x56);
delay_ms(1);
USART_SendData(USART2,0x00);
delay_ms(1);
USART_SendData(USART2,0x11);
delay_ms(1);
USART_SendData(USART2,0x00);
delay_ms(1);




void USART2_IRQHandler(void) //串口2中断服务程序
{
    u8 Res, i;
    if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断
    {
        Res = USART_ReceiveData(USART2); //(USART2->DR);    //读取接收到的数据

        u1_printf("%c", Res);
    }


}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2022-11-14 10:41:09 | 显示全部楼层
怎么收发不一致?波特率不一样?
printf里%c能显示0?
别用printf,直接发送原始数据,用16进制显示看.
USART_SendData(USART1,Res );
专治疑难杂症
回复 支持 反对

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2022-11-14 11:07:35 | 显示全部楼层
不是不接受00的问题。是串口中断中发送比较耗时,导致的出现数据被覆盖的问题,你的ORE位肯定变1了


回复 支持 反对

使用道具 举报

2

主题

74

帖子

0

精华

高级会员

Rank: 4

积分
835
金钱
835
注册时间
2019-12-14
在线时间
53 小时
发表于 2022-11-15 09:24:54 | 显示全部楼层
串口调试起来还是挺耗时间的。学习一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 23:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表