打印
[技术问答]

mini58双串口使用时UART1发送正常RX数据容易出现Framing error

[复制链接]
3711|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请高手指点,现在使用mini58的双串口,uart0工作正常不存在问题,uart1发送正常但是接收容易出现数据移位产生Framing error。uart1的配置为 数据位8bits, 停止位1bit, 无校验位.烦请指点
沙发
借个火|  楼主 | 2017-5-3 10:37 | 只看该作者
附件串口中断代码

QQ截图20170503103612.png (48.61 KB )

QQ截图20170503103612.png

使用特权

评论回复
板凳
借个火|  楼主 | 2017-5-3 11:00 | 只看该作者

使用特权

评论回复
地板
a_ziliu| | 2017-5-3 11:17 | 只看该作者
代码看起来还好,主要要看串口信号总线上面是否有noise干扰,造成uart封包错误,信号误判。

使用特权

评论回复
5
借个火|  楼主 | 2017-5-3 14:45 | 只看该作者
a_ziliu 发表于 2017-5-3 11:17
代码看起来还好,主要要看串口信号总线上面是否有noise干扰,造成uart封包错误,信号误判。 ...

我现在是用USB转串口助手直接连的开发板。应该没有什么干扰

使用特权

评论回复
6
mintspring| | 2017-5-3 16:54 | 只看该作者
波特率是多少,是不是太快了。

使用特权

评论回复
7
借个火|  楼主 | 2017-5-5 22:07 | 只看该作者
mintspring 发表于 2017-5-3 16:54
波特率是多少,是不是太快了。

9600问题比较明显,115200性能最好

使用特权

评论回复
8
wahahaheihei| | 2017-5-7 15:25 | 只看该作者
一般都是波特率小了好,波特率大了不好,你这个刚好相反,不是很明白怎么个情况。

使用特权

评论回复
9
wahahaheihei| | 2017-5-7 15:37 | 只看该作者
看了一下,两个串口的时钟电路部分是一样的,应该在时钟初始化上不会出错,唯一不同的是串口1为比串口0功能配置更简

使用特权

评论回复
10
Lbsonggz| | 2017-5-8 09:11 | 只看该作者
看看优先级,同时中断只能执行一个,后一个中断可能就存在延迟或丢失现象了

使用特权

评论回复
11
借个火|  楼主 | 2017-5-17 15:29 | 只看该作者
Lbsonggz 发表于 2017-5-8 09:11
看看优先级,同时中断只能执行一个,后一个中断可能就存在延迟或丢失现象了 ...

和优先级没有关系,当我只打开uart1中断时还是会有这种状况

使用特权

评论回复
12
稳稳の幸福| | 2017-5-17 15:54 | 只看该作者
搞定问题i了吗?没有这个开发板啊,不好实验。

使用特权

评论回复
13
借个火|  楼主 | 2017-5-17 16:32 | 只看该作者
找到原因了,UART1的CLK必须要和HCLK保持一致,否者,UART1的接收就会出现移位的现象。但是UART0就不需要,我是不是可以认为这个是IC的bug呢?

使用特权

评论回复
14
借个火|  楼主 | 2017-5-17 16:34 | 只看该作者
稳稳の幸福 发表于 2017-5-17 15:54
搞定问题i了吗?没有这个开发板啊,不好实验。

已经找到原因了,但是有点不理解。

使用特权

评论回复
15
借个火|  楼主 | 2017-5-17 16:36 | 只看该作者
wahahaheihei 发表于 2017-5-7 15:25
一般都是波特率小了好,波特率大了不好,你这个刚好相反,不是很明白怎么个情况。 ...

这个是代吗处理的小问题已解决。

使用特权

评论回复
16
稳稳の幸福| | 2017-5-17 16:37 | 只看该作者
借个火 发表于 2017-5-17 16:36
这个是代吗处理的小问题已解决。

怎么玩的,代码可以共享一下吗,还没有玩过两个串口同时搞的

使用特权

评论回复
17
借个火|  楼主 | 2017-5-17 16:42 | 只看该作者
稳稳の幸福 发表于 2017-5-17 16:37
怎么玩的,代码可以共享一下吗,还没有玩过两个串口同时搞的

两个串口和一个串口没什么区别,问题出在硬件上两个串口有区别,这才导致出现问题。答案上面已贴出来了。

使用特权

评论回复
18
稳稳の幸福| | 2017-5-17 17:00 | 只看该作者
借个火 发表于 2017-5-17 16:42
两个串口和一个串口没什么区别,问题出在硬件上两个串口有区别,这才导致出现问题。答案上面已贴出来了。 ...

噢,这样啊,还以为软件有区别。。多谢分享经验。

使用特权

评论回复
19
借个火|  楼主 | 2017-6-5 15:11 | 只看该作者
本帖正解在这里之前都是扯犊子

QQ截图20170605150902.png (83 KB )

Mini58 Series Errata Sheet

Mini58 Series Errata Sheet

使用特权

评论回复
20
zhuotuzi| | 2017-6-5 15:48 | 只看该作者
我去,人家官方都已经发现了这个错误容易引起。。厉害了。

使用特权

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

本版积分规则

1

主题

11

帖子

0

粉丝