远离那小猫 发表于 2025-6-30 13:55:50

32G板子仿真,程序错位

使用单片机是32G12K128,使用外部晶振12M,将程序下载进去后,仿真程序运行不正常。
请问论坛大佬是哪边出现了问题,板子之前跑过例程,串口通信没有问题。
1、是否下载硬件设置有问题?
使用外部晶振12M,板子上有485芯片,串口通信运行错误。

2、优化等级调低后也一样出现问题


DebugLab 发表于 2025-6-30 14:11:11

不能仿真时钟/复位相关的功能,仿真中不能切换时钟
切换外部晶振并等待时钟稳定阶段可能会影响仿真
仿真时直接使用内部时钟
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
仿真程序占用P3.0/P3.1口,但不占用串口1,用户程序可以将串口1切换到其它IO使用
仿真监控程序占用内部扩展RAM(XDATA)的最后768字节,程序使用XDATA+768字节不能大于芯片XDATA的容量
不能仿真时钟/复位相关的功能,例如程序里面不能修改系统时钟频率,不能开启看门狗,不能进入休眠/空闲模式
仿真通过P3.0/P3.1口与 KEIL 驱动进行通信,如P3.0/P3.1口数据受到干扰可能会导致仿真异常(如接触不良、P30/P31接了其他电路等)
单步仿真DPTR只能使用USB Link1D通过SWD仿真
使用USB或UART仿真,当停止运行用户代码时,定时器0~4会全部停止,此时和定时器相关的硬件都会停止,包括串口时钟、定时器中断、定时器时钟输出等
芯片的时钟不能在仿真时(Keil中)修改,只能在烧录时通过硬件选项设置
USB或UART仿真时,全速运行不能实时更新变量的值,因为USB或UART仿真是软件完成的,全速运行时CPU完全在执行用户程序,无法同时运行仿真程序,如此时运行仿真程序,就会影响用户程序的全速运行,所以不支持在全速运行时实时更新变量的值
特别提醒:
1、制作完成仿真芯片后,必须对目标单片机重新上电仿真功能才有效。
   如果使用官方的Link1D或者USB转双串口工具制作仿真芯片,由于工具上有
   自动停电/上电电路,工具会在制作完成后自动进行停电/上电,此时才不需要重新上电。
   如果是使用其他工具制作仿真芯片后,制作完成后必须对目标单片机
   重新上电,仿真功能才有效,才可正常进行仿真。
2、STC32G12K128/STC32G12K647.4.8以及此前的固件版本,制作成串口和USB仿真后,
   用USB下载能恢复到正常下载;
3、STC32G12K128/STC32G12K647.4.12/7.4.13固件版本,制作成串口和USB仿真后,
   使用USB下载不能恢复到正常下载,需要更新到7.4.14版本

神农鼎 发表于 2025-6-30 21:22:18

ISP 设置仿真母片时,设置成 内部IRC 12MHz,
应用程序中不要有切换到外部时钟的动作





jwd 发表于 2025-6-30 22:15:11

你需要仿真的话不应该是这样吗?

远离那小猫 发表于 2025-7-1 09:05:08

jwd 发表于 2025-6-30 22:15
你需要仿真的话不应该是这样吗?

截图截的下载时的配置,仿真确实是按这样进的
页: [1]
查看完整版本: 32G板子仿真,程序错位