找回密码
 立即注册
楼主: silhouette

isp程序里接收ap固件的串口只能使用UART1吗

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-27 14:37:20 | 显示全部楼层
silho*** 发表于 2024-7-27 14:26
isp demo里用的UART1,功能脚配的P3.0,P3.1。我配成P1.6,P1.7也可以下载AP代码升级。但是配置UART2,而 ...

用户自定义方式使用IAP下载
改成UART2,先使用用户程序调通UART2再加入下载功能
检查UART2配置,UART模式、波特率发生器,中断设置、中断函数等
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-27 14:26:40

1

主题

7

回帖

23

积分

新手上路

积分
23
发表于 2024-7-27 14:39:54 | 显示全部楼层

代码看着没啥问题呀

本帖最后由 silhouette 于 2024-7-27 14:40 编辑

代码看着没啥问题呀
1.png
2.png
3.png
4.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-27 14:26:40

1

主题

7

回帖

23

积分

新手上路

积分
23
发表于 2024-7-27 14:59:30 | 显示全部楼层
救救孩子吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-27 15:00:59 | 显示全部楼层

        P_SW2|=0x01;                                        //设置UART2端口为UART2_2
        AUXR=0x15;                                                //设置定时器0为12T模式,设置定时器1为12T模式,使能定时器2,设置定时器2为1T模式
        TMOD=0x00;                                                //设置定时器0为16位自动重载模式,设置定时器1为16位自动重载模式
        TL0=0x00;                                                //设置定时器0初值(5ms)
        TH0=0xDC;                                                //设置定时器0初值(5ms)
        ET0=1;                                                        //使能定时器0中断
       
        SCON=0x50;                                                //UART1模式为8位数据,可变波特率
        S2CON=S2REN;                                        //UART2模式为8位数据,可变波特率
        T2L=BRT;                                                //设置波特率
        T2H=BRT>>8;                                                //设置波特率
        ES=1;                                                        //使能UART1中断
        IE2|=ES2;                                                //使能UART2中断


void Uart2_Isr(void) interrupt 8
{
        static unsigned char tp;
        unsigned int temp;
        if(S2CON&S2RI)
        {
                S2CON&=~S2RI;
                Uart2_R_Buffer[Uart2_RP]=S2BUF;
                Uart2_RP++;
                               

        }
        if(S2CON&S2TI)
        {
                S2CON&=~S2TI;
                if(tp==Uart2_T_Lenth)
                {
                        tp=0;
                        Uart2_T_Lenth=0;
                }
                if(Uart2_T_Lenth!=0)
                {
                        S2BUF=Uart2_T_Buffer[tp];
                        tp++;
                }
        }
}

点评

正常工作的代码UART2部分,对比一下少了什么操作没有  详情 回复 发表于 2024-7-27 15:03
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-27 15:03:36 | 显示全部楼层
Debu*** 发表于 2024-7-27 15:00
P_SW2|=0x01;                                        //设置UART2端口为UART2_2
        AUXR=0x15;                                                //设置定时器0为12T模式,设置定时器1为12 ...

正常工作的代码UART2部分,对比一下少了什么操作没有
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-27 15:06:41 | 显示全部楼层
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-7-31 12:02:41 来自手机 | 显示全部楼层
中断向量没重映射吧?
串口1的中断向量重映射官方自然已经给弄好了,就在那个isr.asm文件里,如果想用串口2了话就得自己再把串口2中断映射一下。
不然bootload里用不了中断
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 08:42:24

1

主题

6

回帖

37

积分

新手上路

积分
37
发表于 2024-10-29 21:21:49 | 显示全部楼层
楼主 问题搞定没?我也是尝试用串口2 就是不能成功。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-10-30 14:57:07 | 显示全部楼层
附件是使用串口3进行在线升级的用户ISP例子,可以参考一下。
修改接口就以下几个位置:
1.主文件 main.c 里面串口IO模式设置:
截图202410301453551201.jpg
2.串口文件 uart.c 串口初始化函数:
截图202410301454513593.jpg
串口接收函数:
截图202410301455457967.jpg
串口发送函数:
截图202410301456113365.jpg
截图202410301456352796.jpg
就这些。

stc_uart3_user_isp.zip

210.54 KB, 下载次数: 57

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 08:42:24

1

主题

6

回帖

37

积分

新手上路

积分
37
发表于 2024-10-30 16:50:28 | 显示全部楼层
stc8a8k64d4通过串口2进行iap搞定了,除了要先配置P10 P11我双向口,其次配置串口的时候要把发送中断标志位置1, 官方例程是 SCON = 0x52;配置串口2时需要为S2CON = 0x12;具体为什么么我也不知道;其他地方都是正常配置和替换。
截图202410301643527737.jpg
截图202410301644263669.jpg
截图202410301644472644.jpg
截图202410301645204038.jpg
截图202410301645394545.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 22:03 , Processed in 0.123634 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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