找回密码
 立即注册
楼主: 芯***

帮网友答疑解惑ing

[复制链接]

该用户从未签到

0

主题

7

回帖

48

积分

新手上路

积分
48
发表于 2023-2-6 22:04:45 | 显示全部楼层
感谢各位的回贴,回复 LAOXU   串口助手,9600  上电复位后,我发送02 01 00 FF 单片机会回复02 01 02 01 02 01 02 01(和发送速度无关,我纯手工点的,试多次也是一样的,他回复我8个字节) 正常应回复前面4个,现在我在主程序中40MS延迟后,回复都正常,接收也正常,并不是您说的掉数据,
我回复的4个语句放在if(EnterTag)中,就说明,接到了4个字节,而且也是02开头的,就算是有问题,也只会回复4个字节,
回复 chen  您说的静态变量有点道理,我试下, 其实我也是有前缀的,02开头被接收,FF结尾,除非那干扰就是02,不然是不会影响数组数据的。

该用户从未签到

0

主题

7

回帖

48

积分

新手上路

积分
48
发表于 2023-2-6 22:40:59 | 显示全部楼层
回复 chen  我刚才试下,中断里改成全局变量就OK,那延时加不加都没有关系了,确实是中断重复定义局部变量的问题,您这一说就明白是什么一回事了,非常感谢!!!
  • TA的每日心情
    开心
    26 分钟前
  • 签到天数: 134 天

    [LV.7]常住居民III

    37

    主题

    869

    回帖

    3950

    积分

    荣誉版主

    积分
    3950
    发表于 2023-2-7 19:19:18 | 显示全部楼层
    梁工 发表于 2023-2-6 15:26
    串口都要用中断方式收发,特别是接收。比如115200的波特率,86.8us中断一次,进中断读SBUF保存在接收数组 ...

    没用的,

    10几年前的事, 用的 AT89C51, 用串口中断, 9600 就掉数据,

    分析原因, PC机传输速度太快了, 51只有一个SBUF, 没有接收缓冲区

    点评

    我90年代就开始用8031用于工控,115200波特率都不会丢数据,如果这个MCU用9600都丢数据,几十年前它就不会存在于市场。当年的8031、Z80、6502,三分天下。 9600都丢数据,一定要仔细查查自己的程序了。  详情 回复 发表于 2023-2-7 20:08
  • TA的每日心情
    开心
    26 分钟前
  • 签到天数: 134 天

    [LV.7]常住居民III

    37

    主题

    869

    回帖

    3950

    积分

    荣誉版主

    积分
    3950
    发表于 2023-2-7 19:24:50 | 显示全部楼层
    现在的单片机, 速度比以前快了约十倍, 估计要好多了.

    最后强调一下, 通过品usb转串口的, 实际通讯速率(平均速率)都有所下降.

    该用户从未签到

    46

    主题

    2927

    回帖

    6585

    积分

    超级版主

    积分
    6585
    发表于 2023-2-7 20:08:35 | 显示全部楼层
    LAOXU 发表于 2023-2-7 19:19
    没用的,

    10几年前的事, 用的 AT89C51, 用串口中断, 9600 就掉数据,

    我90年代就开始用8031用于工控,115200波特率都不会丢数据,如果这个MCU用9600都丢数据,几十年前它就不会存在于市场。当年的8031、Z80、6502,三分天下。

    9600都丢数据,一定要仔细查查自己的程序了。

    该用户从未签到

    550

    主题

    9235

    回帖

    1万

    积分

    管理员

    积分
    13946
    发表于 2023-2-7 20:20:45 | 显示全部楼层
    STC32G12K128, STC8H8K64U, STC8A8K64D4 等新款 8051,都有 DMA 支持4组串口,
    ====谁不用DMA, 谁自己拿自己开心,DMA 支持串口, 6M bps 太轻松
    1.png
    2.png

    该用户从未签到

    550

    主题

    9235

    回帖

    1万

    积分

    管理员

    积分
    13946
    发表于 2023-2-7 20:28:10 | 显示全部楼层
    STC15F2K60S2如嫌慢,有 STC15H2K64S4-36I-LQFP44/LQFP32, 同频,速度快 80%
    STC15H2K64S4的资料见STC8G系列的资料

    1.png

    2.png
    3.png
    4.png
    5.png

  • TA的每日心情
    开心
    26 分钟前
  • 签到天数: 134 天

    [LV.7]常住居民III

    37

    主题

    869

    回帖

    3950

    积分

    荣誉版主

    积分
    3950
    发表于 2023-2-11 07:24:15 | 显示全部楼层
    梁工 发表于 2023-2-7 20:08
    我90年代就开始用8031用于工控,115200波特率都不会丢数据,如果这个MCU用9600都丢数据,几十年前它就不 ...

    这个不用争了, 确实存在!!!

    一个老司机可能犯错, 数个老司机集中攻关, 怎可能犯低级错误?

    当时用于电力系统, 上位机PC, 制作功能单一的 RS232toRS232 模块, 用以解决通讯掉数据问题.

    由于年代较早, 那时的电力系统监控通讯, 估计还没有用到通讯校验.

    最后说一下, 上位PC和下位控制系统, 都是用全米进口的(电力局有钱,国家投资)

  • TA的每日心情
    开心
    26 分钟前
  • 签到天数: 134 天

    [LV.7]常住居民III

    37

    主题

    869

    回帖

    3950

    积分

    荣誉版主

    积分
    3950
    发表于 2023-2-11 07:28:32 | 显示全部楼层
    用全米进口的上/下系统(不是一家公司的), 在通讯时, 一天有时会丢几次数据,  所以加了 RS232toRS232 模块, 以确保可靠性
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-30 03:59 , Processed in 0.066236 second(s), 62 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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