找回密码
 立即注册
查看: 193|回复: 21

STC8H8K64U/32U,实测有串口接收超时,但新版手册上没见标注!【已澄清:没有】

[复制链接]
  • TA的每日心情
    开心
    2024-5-22 07:01
  • 签到天数: 96 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    278

    积分

    中级会员

    积分
    278
    发表于 2024-5-3 06:52:21 | 显示全部楼层 |阅读模式
    本帖最后由 Mr_LG 于 2024-5-9 19:18 编辑

    这里:

    8K64U.png
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 200 天

    [LV.7]常住居民III

    26

    主题

    973

    回帖

    2500

    积分

    金牌会员

    积分
    2500
    发表于 2024-5-3 08:19:36 | 显示全部楼层
    超时没有,奇偶校验有吧

    点评

    再次测试,对比了STC8H2K08U,超时有,倒是奇偶校验似乎没有。  发表于 2024-5-4 07:40
    我测试是有的。但总希望手册上明明白白标明!  发表于 2024-5-3 08:53
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-7 13:25:11 | 显示全部楼层
    啥玩意,,STC8H8K64U这个单片机有超时中断?

    点评

    又测了一遍!有的!  发表于 2024-5-7 13:39
    呵呵,我再试试,不要有乌龙!  发表于 2024-5-7 13:27
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-22 07:01
  • 签到天数: 96 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    278

    积分

    中级会员

    积分
    278
     楼主| 发表于 2024-5-7 13:41:32 | 显示全部楼层
    本帖最后由 Mr_LG 于 2024-5-7 13:43 编辑
    _奶咖君_ 发表于 2024-5-7 13:25
    啥玩意,,STC8H8K64U这个单片机有超时中断?

    呵呵,以图为证:

    超时中断测试.png
    截图202405071343423083.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-7 14:26:05 | 显示全部楼层
    能看看你手头上的STC8H8K64U是什么版本的么0.0 如果和我手头上的是一样的话 我也测测去,,,如果有这个东西配DMA就太好用了

    点评

    正在检测目标单片机 ... 单片机型号: STC8H8K64U 软件协议, V3.0: 7.4.6U 当前芯片的硬件选项为: . 系统ISP工作频率: 23.866MHz . 内部IRC振荡器的频率: 22.145MHz . 掉电唤醒定时器的频率: 35.200KHz   发表于 2024-5-7 14:52
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-7 14:56:59 | 显示全部楼层
    不是 不是 我说的是芯片丝印上最后两个字母。那个是芯片的硬件版本。。。

    点评

    那个?是“8”,手机拍摄才看清的。  发表于 2024-5-7 15:25
    难煞我的老眼昏花了:2229A503?03.YC  发表于 2024-5-7 15:22
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-7 16:14:29 | 显示全部楼层
    _奶咖君_ 发表于 2024-5-7 14:56
    不是 不是 我说的是芯片丝印上最后两个字母。那个是芯片的硬件版本。。。 ...

    好的 感谢  了解了 ,,您这个是C版的  我手头上的是D版的  有空了我也测试一下。。
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-8 11:14:02 | 显示全部楼层
    我这里测试没有这个功能。有点儿难受。。
    你再研究研究你的测试方法吧,可以试一试不开启发送接收中断设置一个最长的超时时间,看看灯的变化或者用其他的串口打印输出一下。

    点评

    哈哈,被你说得我都疑心了!但是,但是姚总怎么不开口呢?  发表于 2024-5-9 16:00
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-22 07:01
  • 签到天数: 96 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    278

    积分

    中级会员

    积分
    278
     楼主| 发表于 2024-5-9 17:19:58 | 显示全部楼层
    本帖最后由 Mr_LG 于 2024-5-9 17:23 编辑
    _奶咖君_ 发表于 2024-5-8 11:14
    我这里测试没有这个功能。有点儿难受。。
    你再研究研究你的测试方法吧,可以试一试不开启发送接收中断设置 ...

    谢谢你的提醒,反思了下,应该是原测试代码只能验证“有”而不能验证“无”!


    //1,原中断服务:
    //===================================================
    void UART1_Intr(void) interrupt 4
    {   //-------------------------------------
        if(RI)
        {   RI = 0;
            RX1_Buffer[RX1_Cnt] = SBUF;
            if(++RX1_Cnt >= S1Buf_Len)
            RX1_Cnt = 0;
        }
        //-------------------------------------
        if(TI)
        {   TI = 0;
            B_TX1_Busy = 0;
        }
        //-------------------------------------
        //下面当UR1TOSR寄存器不存在时,可能各位恒为1?
        if(UR1TOSR & 0x01) //判断是否产生超时中断
        {   B_RX1_OK = 1;
            UR1TOSR &= ~0x01; //清除超时标志位 TOIF
            C_LED = ~C_LED; //点灯!
        }
    }

    //2,是否应该改成这样:
    //===================================================
    void UART1_Intr(void) interrupt 4
    {    //-------------------------------------
        if(RI)
        {   RI = 0;
            RX1_Buffer[RX1_Cnt] = SBUF;
            if(++RX1_Cnt >= S1Buf_Len)
            RX1_Cnt = 0;
        }
        //-------------------------------------
        else if(TI)
        {   TI = 0;
            B_TX1_Busy = 0;
        }
        //-------------------------------------
        else if(UR1TOSR & 0x01) //判断是否产生超时中断
        {    B_RX1_OK = 1;
            UR1TOSR &= ~0x01; //清除超时标志位 TOIF
            C_LED = ~C_LED; //点灯!
        }
    }
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    21

    主题

    1249

    回帖

    3039

    积分

    论坛元老

    积分
    3039
    发表于 2024-5-9 18:24:29 | 显示全部楼层
    主要的问题时,,如果读取一个不存在的寄存器,,,读出的不是零,,你那里的程序也是会执行的,,,
    我那天稍微试了一下,先读取寄存器数值,,发现和默认值对不上,,然后赋值之后再读取也完全不对,,,所以认为可能是没有这个寄存器的。

    点评

    谢谢!你,澄清了我的一个误判。  发表于 2024-5-9 19:16
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-15 21:15 , Processed in 0.071303 second(s), 71 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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