OpenEdv-开源电子网

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

串口收发,上电后第一次总是 多一个FF 字节

[复制链接]

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
发表于 2019-7-17 14:59:43 | 显示全部楼层 |阅读模式
20金钱
串口1 收发,上电后第一次收到的数据 总是多一个FF,导致后面数据乱了,,,但是在仿真状态是,收发是正常的,如下图。。。望大家多多指点。。。谢谢!


调换过串口和GPIO配置的顺序,还是没有解决。。。
360截图20190717111242835.jpg

最佳答案

查看完整内容[请看2#楼]

搞定了,是蓝牙模块上电会有一个字符,,,然后把这个字符过掉就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 14:59:44 | 显示全部楼层
流年丶 发表于 2019-7-18 11:10
代码方便帖出来不呢

搞定了,是蓝牙模块上电会有一个字符,,,然后把这个字符过掉就可以了
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 15:01:24 | 显示全部楼层
....
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 15:05:54 | 显示全部楼层
                  
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 15:16:05 | 显示全部楼层
...................................
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 15:16:29 | 显示全部楼层
回复

使用道具 举报

4

主题

98

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3876
金钱
3876
注册时间
2018-5-25
在线时间
898 小时
发表于 2019-7-17 15:25:11 | 显示全部楼层
信号从低电平跳跃到高电平,肯定有干扰的,软件忽略就好了,总不能数据不加协议和校验吧
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14422
金钱
14422
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-7-17 15:56:00 | 显示全部楼层
用原子xcom 试下
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 16:27:18 | 显示全部楼层
zdes33ss 发表于 2019-7-17 15:25
信号从低电平跳跃到高电平,肯定有干扰的,软件忽略就好了,总不能数据不加协议和校验吧

协议是有的,校验也是有的,但是发回上位机的多了个FF,然后导致后面的全乱了
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 16:30:52 | 显示全部楼层
zdes33ss 发表于 2019-7-17 15:25
信号从低电平跳跃到高电平,肯定有干扰的,软件忽略就好了,总不能数据不加协议和校验吧

然后一直不是协议指令
回复

使用道具 举报

4

主题

98

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3876
金钱
3876
注册时间
2018-5-25
在线时间
898 小时
发表于 2019-7-17 16:51:25 | 显示全部楼层
本帖最后由 zdes33ss 于 2019-7-17 16:53 编辑
S2663265296 发表于 2019-7-17 16:30
然后一直不是协议指令

一直出现FF,硬件问题?

回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-17 17:48:02 | 显示全部楼层
如何我直接接收到什么就发什么的话,会多个FF,如果判断了帧头帧尾或校验和,就一直进不去发送数据的程序,但是在仿真下是没有问题的
回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6745
金钱
6745
注册时间
2017-4-12
在线时间
1258 小时
发表于 2019-7-17 18:06:22 | 显示全部楼层
是不是采用串口中断的方式进行发送的,是的话,只要开启,就会进中断一次
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-18 10:32:59 | 显示全部楼层
245925587 发表于 2019-7-17 18:06
是不是采用串口中断的方式进行发送的,是的话,只要开启,就会进中断一次

不是,我是在main发的
void Usart_SendArray( USART_TypeDef * pUSARTx, uint8_t *array, uint16_t num)
{
  uint8_t i;
       
        for(i=0; i<num; i++)
  {
            /* ·¢&#203;íò&#187;&#184;&#246;×&#214;&#189;úêy&#190;Yμ&#189;USART */
            Usart_SendByte(pUSARTx,array);       
  
  }
        /* μè′y·¢&#203;ííê3é */
        while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET);
}
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-18 10:34:04 | 显示全部楼层
245925587 发表于 2019-7-17 18:06
是不是采用串口中断的方式进行发送的,是的话,只要开启,就会进中断一次

但是我用CH340发是没有这个问题的,只有在蓝牙通信的时候才这样子
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-7-18 10:39:42 | 显示全部楼层
等待发送完成放进for循环里面,你这是还未发送成功,然后又继续发送下一个数据了。
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-18 10:59:53 | 显示全部楼层
流年丶 发表于 2019-7-18 10:39
等待发送完成放进for循环里面,你这是还未发送成功,然后又继续发送下一个数据了。

这个是例程来的,不过你说的也对,但是我把发送完成放进for还是一样的问题,,,用340还是没有问题
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-7-18 11:10:05 | 显示全部楼层
S2663265296 发表于 2019-7-18 10:59
这个是例程来的,不过你说的也对,但是我把发送完成放进for还是一样的问题,,,用340还是没有问题

代码方便帖出来不呢
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-7-18 11:26:51 | 显示全部楼层
S2663265296 发表于 2019-7-18 11:24
搞定了,是蓝牙模块上电会有一个字符,,,然后把这个字符过掉就可以了

额。。。。还外接了蓝牙模块,还以为直接上位机收发呢
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-18 11:30:26 | 显示全部楼层
流年丶 发表于 2019-7-18 11:26
额。。。。还外接了蓝牙模块,还以为直接上位机收发呢

蓝牙通信的,,,但是在仿真状态是收发是正常的,就是上电的第一次多个字节
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-7-18 11:31:44 | 显示全部楼层
S2663265296 发表于 2019-7-18 11:30
蓝牙通信的,,,但是在仿真状态是收发是正常的,就是上电的第一次多个字节

你仿真状态,数据就已经过滤掉了咯
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-8-13
在线时间
14 小时
 楼主| 发表于 2019-7-18 11:33:30 | 显示全部楼层
流年丶 发表于 2019-7-18 11:31
你仿真状态,数据就已经过滤掉了咯

嗯嗯,,,多谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 12:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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