找回密码
 立即注册
查看: 159|回复: 7

一言难尽的STC8H串口问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-3-26 16:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    30

    积分

    新手上路

    积分
    30
    发表于 2024-3-25 11:17:30 | 显示全部楼层 |阅读模式
    因为串口 转移I/O 后不能正常使用的问题,用ISP工具的例程单独测试一下。发现ISP下载成功一次后就不能下载了。。,以为芯片坏了,再试一下还这样。。;赶脚串口也被转移了。。

    程序:

    #include "reg51.h"
    #include "intrins.h"

    #define FOSC        11059200UL
    #define BRT         (65536 - FOSC / 115200 / 4)

    sfr     T4T3M   =   0xd1;
    sfr     T4L     =   0xd3;
    sfr     T4H     =   0xd2;
    sfr     T3L     =   0xd5;
    sfr     T3H     =   0xd4;
    sfr     T2L     =   0xd7;
    sfr     T2H     =   0xd6;
    sfr     S3CON   =   0xac;
    sfr     S3BUF   =   0xad;
    sfr     IE2     =   0xaf;

    sfr     P0M1    =   0x93;
    sfr     P0M0    =   0x94;
    sfr     P1M1    =   0x91;
    sfr     P1M0    =   0x92;
    sfr     P2M1    =   0x95;
    sfr     P2M0    =   0x96;
    sfr     P3M1    =   0xb1;
    sfr     P3M0    =   0xb2;
    sfr     P4M1    =   0xb3;
    sfr     P4M0    =   0xb4;
    sfr     P5M1    =   0xc9;
    sfr     P5M0    =   0xca;
    sfr     P_SW2       =   0xba;

    bit busy;
    char wptr;
    char rptr;
    char buffer[16];

    void Uart3Isr() interrupt 17
    {
        if (S3CON & 0x02)
        {
            S3CON &= ~0x02;
            busy = 0;
        }
        if (S3CON & 0x01)
        {
            S3CON &= ~0x01;
            buffer[wptr++] = S3BUF;
            wptr &= 0x0f;
        }
    }

    void Uart3Init()
    {
        S3CON = 0x50;
        T3L = BRT;
        T3H = BRT >> 8;
        T4T3M = 0x0a;
        wptr = 0x00;
        rptr = 0x00;
        busy = 0;
    }

    void Uart3Send(char dat)
    {
        while (busy);
        busy = 1;
        S3BUF = dat;
    }

    void Uart3SendStr(char *p)
    {
        while (*p)
        {
            Uart3Send(*p++);
        }
    }


    void main()
    {
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
            P_SW2 |= 0x02;                                                //UART3: RxD3(P5.0), TxD3(P5.1)
        Uart3Init();
        IE2 = 0x08;
        EA = 1;
        Uart3SendStr("Uart Test !\r\n");

        while (1)
        {;
            if (rptr != wptr)
            {
                Uart3Send(buffer[rptr++]);
                rptr &= 0x0f;
                                           
            }
        }
    }

    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-26 16:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    30

    积分

    新手上路

    积分
    30
     楼主| 发表于 2024-3-25 11:18:12 | 显示全部楼层
    串口1 被转移了?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 125 天

    [LV.7]常住居民III

    26

    主题

    1271

    回帖

    3957

    积分

    论坛元老

    积分
    3957
    发表于 2024-3-25 11:52:04 | 显示全部楼层
    ERTW 发表于 2024-3-25 11:18
    串口1 被转移了?

    芯片烧录运行的是芯片内部固化的系统ISP程序,跟用户程序没有关系。
    而且芯片复位运行系统ISP程序时用户配置的寄存器也全部被复位了,所以用户程序不管怎么写,都不会影响到系统ISP程序的下载功能。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-26 16:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    30

    积分

    新手上路

    积分
    30
     楼主| 发表于 2024-3-25 15:32:59 | 显示全部楼层
    乘风飞扬 发表于 2024-3-25 11:52
    芯片烧录运行的是芯片内部固化的系统ISP程序,跟用户程序没有关系。
    而且芯片复位运行系统ISP程序时用户 ...

    好巧不巧,下载器坏了,多谢大师答疑
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 40 天

    [LV.5]常住居民I

    0

    主题

    156

    回帖

    331

    积分

    中级会员

    积分
    331
    发表于 2024-3-25 16:32:02 | 显示全部楼层
    ISP不过是一段开机启动程序,还没有跑到用户代码区,串口是不会转移的。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.5]常住居民I

    2

    主题

    508

    回帖

    629

    积分

    高级会员

    积分
    629
    发表于 2024-3-25 16:56:21 | 显示全部楼层
    ISP引脚是固定的不会转移吧
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    4

    主题

    404

    回帖

    1082

    积分

    金牌会员

    积分
    1082
    发表于 2024-3-25 19:44:45 | 显示全部楼层
    soma 发表于 2024-3-25 16:56
    ISP引脚是固定的不会转移吧

    ISP引脚是固定的不会转移
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    25

    主题

    695

    回帖

    1725

    积分

    金牌会员

    积分
    1725
    发表于 2024-3-25 20:35:48 | 显示全部楼层
    这锅背的
    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-27 16:53 , Processed in 0.066356 second(s), 57 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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