打印

数据错乱

[复制链接]
1507|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
langgq|  楼主 | 2022-8-4 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片用的是MA805-64和82FE216

现象:
        我用串口0连485以57600波特率跟上位机通信,用串口1以9600波特率跟一个模块A通信
        模块A要经常通信,每次都要发0x02回应模块A,但间隔不会太长
        问题是串口0跟上位机繁忙通信时,发给上位机的数据中会混入串口1的0x02,而且此时模块A会由于收不到回应而挂了

使用特权

评论回复
沙发
午夜粪车| | 2022-8-4 22:10 | 只看该作者
没太看明白,举个例子?

使用特权

评论回复
板凳
langgq|  楼主 | 2022-8-4 22:12 | 只看该作者

例如我要发送 00 AA BB CC DD EE FF 11 给上位机
        但有时会出现00 AA BB CC DD 02 EE FF

使用特权

评论回复
地板
zwll| | 2022-8-4 22:18 | 只看该作者
上位机只显示8个字节?

使用特权

评论回复
5
langgq|  楼主 | 2022-8-4 22:20 | 只看该作者
对,或00 AA BB 02 CC DD EE FF

使用特权

评论回复
6
huangchui| | 2022-8-4 22:22 | 只看该作者
怀疑是串口0跟串口1的SBUF由于页切换不够快而导致这个问题。

使用特权

评论回复
7
bqyj| | 2022-8-4 22:24 | 只看该作者
我手上的那份805-64中文的DATASHEET没说页切换的时间,二姨家有知道的朋友么?

使用特权

评论回复
8
dingy| | 2022-8-4 22:26 | 只看该作者
串口0和串口1 SBUF 的页切换是实时的

使用特权

评论回复
9
dengdc| | 2022-8-4 22:28 | 只看该作者
对,否则,你只要发送快,都会错.

使用特权

评论回复
10
pengf| | 2022-8-4 22:30 | 只看该作者
楼主可以检查一下,有没有别的地方切换了页,而没有切回来.

使用特权

评论回复
11
jiajs| | 2022-8-4 22:32 | 只看该作者
有点奇怪啊

使用特权

评论回复
12
langgq|  楼主 | 2022-8-4 22:33 | 只看该作者
默认串口0优先级比串口1优先级要高,而程序里并没改变优先级,就搞不懂怎么了。

使用特权

评论回复
13
pengf| | 2022-8-4 22:35 | 只看该作者
串口1的数据发送前先将页写成1,再写进SBUF里

使用特权

评论回复
14
supernan| | 2022-8-4 22:37 | 只看该作者
在中断中改变页,请在中断中保存页值..

使用特权

评论回复
15
langgq|  楼主 | 2022-8-4 22:39 | 只看该作者
怎样保存页值?不是直接写那个页寄存器就行了么?

使用特权

评论回复
16
lizye| | 2022-8-4 22:41 | 只看该作者
你的程序一直在用串口0 在发送,在主程序中一直在做这个动作.此时BUF 的页值是串口0的.

使用特权

评论回复
17
zhanghqi| | 2022-8-4 22:44 | 只看该作者
对,假设此时,进到串口1中断,在中断中您没有保存页值,那么出中段时,页值就改变了,如果此时,您没有重新写页值,就继续发送串口0.此时数据就出错了.

使用特权

评论回复
18
langgq|  楼主 | 2022-8-4 22:46 | 只看该作者
我使用双串口是这样的流程:
两个串口都使用中断才收发数据。
当有中断产生就进去处理,首先是把页改为相应的值,例如串口0的中断则先把页设成0,再进去处理,再去把数据放进buf里,搞定之后退出中断。

使用特权

评论回复
19
langgq|  楼主 | 2022-8-4 22:48 | 只看该作者

你在7楼的回复里说由于退出中断后页值改变
这个BUF不是同一个逻辑地址不同的物理寄存器么,那我把页设置之后,往BUF里一写就应该是写进相应的寄存器了吧,怎么会因为我退出中断而把串口1的发送寄存器的内容,连接到了串口0的发送那里呢?

使用特权

评论回复
20
jlyuan| | 2022-8-4 22:51 | 只看该作者
可能是这样,一进中断,改变了页地址,而此时刚好还有数据在发送或接收,从而出错

使用特权

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

本版积分规则

932

主题

8762

帖子

1

粉丝