打印
[其它应用]

SH88F6161串口发送数据200字节左右丢byte

[复制链接]
1047|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bqyj|  楼主 | 2022-7-7 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用SH88F6161串口发送和接收数据时,小数据量没发现异常,数据量超过150是就会有很大几率的出现丢字节的问题

使用特权

评论回复
沙发
dingy| | 2022-7-7 21:05 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
dengdc| | 2022-7-7 21:07 | 只看该作者
void uart_1_init(void)
{
        SCON1 = 0x50;
        IEN1 = IEN1 | 0x40;
        /*配置波特率参数,波特率57600 */
        /* 计算公式:(int)X=FSY/(16*波特率) ;  SBRT=32768-X  ;   SFINE=(FSY/波特率)-16*X   FSY=12M*/
        SBRTH1 = 0xff;
        SBRTL1 = 0xf3;      //57600 f3
        SFINE1 = 0x00;
}

使用特权

评论回复
地板
zhanglli| | 2022-7-7 21:11 | 只看该作者
中断发送下一字节前,先延时1bit的时间,浪费了一些MCU时间,但是确实没有误码了。

使用特权

评论回复
5
daichaodai| | 2022-7-7 21:13 | 只看该作者
连续发送数据,如果逻辑没处理好就很容易丢包。

使用特权

评论回复
6
chuxh| | 2022-7-7 21:14 | 只看该作者
每次进入发送中断,启动发送标志,由定时器延时发送,这样不占用MCU时间,程序麻烦一些。

使用特权

评论回复
7
supernan| | 2022-7-7 21:17 | 只看该作者
最主要的,MCU的串口发送是一个字节一个字节紧跟发送,中间只有一个停止位,如果有2个停止位,确实不会有错,但是一个MCU,收发的停止位不可能不一样。

使用特权

评论回复
8
bqyj|  楼主 | 2022-7-7 21:18 | 只看该作者
我现在是接收的时候会出错,会丢字节

使用特权

评论回复
9
spark周| | 2022-7-7 21:21 | 只看该作者

接收可以同时接PC的串口收来监控呀。
如果PC接收没有问题,就是你的接收程序问题了,是否MCU来不及接收?是否有更高级的中断程序影响了串口接收。

使用特权

评论回复
10
zhenykun| | 2022-7-7 21:23 | 只看该作者
还有6161这个MCU,寄存器是分2个BANK的,中断程序需要保护BANK现场,重新设置BANK。

使用特权

评论回复
11
bqyj|  楼主 | 2022-7-7 21:25 | 只看该作者
嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
12
tpgf| | 2022-8-2 08:00 | 只看该作者
波特率现在是设置成多少了啊

使用特权

评论回复
13
caigang13| | 2022-8-2 08:03 | 只看该作者
逻辑处理有bug啊

使用特权

评论回复
14
qcliu| | 2022-8-2 08:09 | 只看该作者
缓存那部分处理的不够好?

使用特权

评论回复
15
drer| | 2022-8-2 08:17 | 只看该作者
如何保护bank现场呢

使用特权

评论回复
16
coshi| | 2022-8-2 08:27 | 只看该作者
如何用pc来监控呢

使用特权

评论回复
17
kxsi| | 2022-8-2 08:35 | 只看该作者
重新定义一下协议额

使用特权

评论回复
18
wiba| | 2022-8-2 09:07 | 只看该作者
用示波器看看是发送端的问题还是接收端的问题

使用特权

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

本版积分规则

390

主题

4526

帖子

2

粉丝