OpenEdv-开源电子网

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

串口调试助手接收到的信息和发送的信息不一致是为什么?????

[复制链接]

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
发表于 2019-3-6 16:03:16 | 显示全部楼层 |阅读模式
1金钱
上图72和73行为接收和发送,感觉是这里出了问题,串口调试助手发送和接收的东西不一样,请问应该怎么做呢?

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

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:05:27 | 显示全部楼层
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-10-4
在线时间
19 小时
发表于 2019-3-6 16:05:49 | 显示全部楼层
串口助手会有个 十六进制显示什么的吧
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:06:00 | 显示全部楼层
C:\Users\zhangfeng123\Desktop\M%5DUTZD(3]IRID$9{%5BEPUXG5.png
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:08:58 | 显示全部楼层
没带眼镜听不清 发表于 2019-3-6 16:05
串口助手会有个 十六进制显示什么的吧

有的  不是这个问题
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:10:14 | 显示全部楼层
[mw_shl_code=c,true]int USART3_IRQHandler(void)
{       
       
        if(USART3->SR&(1<<5))//接收到数据
        {             
                                u8 temp;
                       
                         
                                static u8 count,last_data,last_last_data,Usart_ON_Count;
                                flag_send=0;
                               
                                if(Usart_ON_Flag==0)
                                {       
                    if(++Usart_ON_Count>10)Usart_ON_Flag=1;  //超过10次进入串口接收中断,使能串口控制
                                }
                                temp=USART3->DR;  //读取接收寄存器的值
                                usart3_send(temp);  //将读取到的数据发送过去
                          
                                   if(Usart_Flag==0)
                                                {       
                                                if(last_data==0xfe&&last_last_data==0xff)  //数据头
                                                Usart_Flag=1,count=0;       
                                               
                                                }
                                         if(Usart_Flag==1)
                                                {       
                                                        Urxbuf[count]=temp;     //依次采集数据
                                                  
                                                        count++;   
                                                       
                                                        if(count==8){Usart_Flag=0;}
                                                }
                                                last_last_data=last_data;  //保存上上次的数据
                                                last_data=temp;            //保存上次的数据
                                               
   }
//return 0;       
}[/mw_shl_code]
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:10:46 | 显示全部楼层
1662170080 发表于 2019-3-6 16:10
[mw_shl_code=c,true]int USART3_IRQHandler(void)
{       
       

这是串口通信的代码
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-3-6
在线时间
1 小时
 楼主| 发表于 2019-3-6 16:15:49 | 显示全部楼层
我的想法是,串口发送一个信息过来,然后判断是否读到的数据个数超过十个,然后进入中断,再读取寄存器里保存的数据,同时把数据返回发送给串口。但是就是这个返回去的数据和发送的数据不一样是为什么,波特率设置为115200,1位停止,无校验位
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 00:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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