找回密码
 立即注册
查看: 382|回复: 18

使用AiCube生成框架的程和手动编辑程序的区别,请大神解释下

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-18 15:01:00 | 显示全部楼层 |阅读模式
附件中上传了一个压缩包,里面有两个文件夹,是两个工程文件,带有Ai后缀的是由Aicube生成的框架;另一个则是用keil5手动生成的工程文件。

问题说明:
1、Aicube生成的框架的程序,仅是一个定时器0,定时打印输出一个字串。调整Keil5的Options for Target功能中的Target选项卡,Memory Model:中的三个选项,分别选择,编译,运行。程序可以正常运行,没有任何问题。在程序运行过程中,按住RST键不放手,会发现有不断的串口信号输出,但是没有打印输出数据,仅仅是空字符。
2、手动生成的工程文件,与上面的文件功能一样。但是对比问题出来了。调整Keil5的Options for Target功能中的Target选项卡,Memory Model:中的三个选项,分别选择,编译,运行。发现仅是选择Small模式方式才能运行。对比的第二个问题,是运行时按住RST不松手,运行停止,松手又是正常工作,现象正常。
以上是描述:
1、请问大神,手动编程的工程怎么设置才做到像Aicube生成的框架那样无论使用Memory Model:中的那个选项都能正常工作?
2、请问大神,AiCube生成的框架,怎么调整才能使按住RST键时,不会有串口打印信号输出?
[url=]STC8H8K64_test.rar[/url]

STC8H8K64_test.rar

210.94 KB, 下载次数: 9

对比文件

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2983

回帖

6363

积分

荣誉版主

无情的代码机器

积分
6363
发表于 2025-7-18 15:45:03 | 显示全部楼层
第一个问题,xdata也可以运行,pdata没记错的话不建议使用:

截图202507181544471986.jpg

截图202507181549139624.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2983

回帖

6363

积分

荣誉版主

无情的代码机器

积分
6363
发表于 2025-7-18 15:47:06 | 显示全部楼层
第二个问题,使用开天斧开发板测试,长时间按住RST未复现,建议复现操作录视频看看,板子硬件原理图也一起上传。

截图202507181546404514.jpg

三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-08-23 08:11:44

775

主题

1万

回帖

1万

积分

管理员

积分
18735
发表于 2025-7-18 15:55:33 | 显示全部楼层
用最新版,在新建立的文件夹中重新生成测试
截图202507181555285754.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:537
  • 最近打卡:2025-08-24 01:00:11
已绑定手机

86

主题

5979

回帖

1万

积分

超级版主

积分
10832
发表于 2025-7-18 18:24:29 | 显示全部楼层
全局变量不能在函数外赋值,要在main函数里初始化时赋值
没有包含startup.51,RAM上电是随机数
RST问题请检查ISP软件硬件选择中的“复位脚做IO口”设置
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
截图202507181823008676.jpg
C语言、汇编语言、编译器、仿真问题:
包含startup.a51时,默认会初始化data(也是idata的低128字节)为0,xdata不操作为上电随机数;不包含startup.a51时,data和xdata为上电随机数
程序只能在函数内执行,全局变量禁止在声明时赋值,赋值的语句必须在函数内,函数外的非声明语句无效

数组可以在初始化时用memset函数全部清零(或其他初始化值)
养成好习惯,函数内的局部变量也不要声明时赋值,而且必须在函数开头声明
制作完仿真芯片必须重新上电才可以正常仿真
如使用 U8W/U8W -Mini 进行仿真,需要先设置“直通模式”
仿真时注意不要勾选“当目标文件变化时自动装载并发送下载命令”,否则当重新编译后,就会正常下载一次,导致仿真程序被覆盖掉,从而无法继续仿真
仿真程序占用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完全在执行用户程序,无法同时运行仿真程序,如此时运行仿真程序,就会影响用户程序的全速运行,所以不支持在全速运行时实时更新变量的值
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-18 21:30:50 | 显示全部楼层
erci*** 发表于 2025-7-18 15:45
第一个问题,xdata也可以运行,pdata没记错的话不建议使用:

回家再次上电使用,手动模式确实也可以在xdata模式下运行了,但是依然有问题。我把单片机原理图及工作视频并把问题说明。
第一个视频是手动编程的视频,可以看到上电工作正常,工作一会后就会有一个短的快闪,说明定时有问题。在打印输出也可以看出,单个出现的是正常,连续两次打印的就是有问题的。
按下RST键工作停止,是正常的。
[url=]手动编程内存使用xdata.mp4 ...[/url]
第二视频是AiCubex编程框架的,可以看到,和手动编程同样的问题,工作一会就不正常了,会出现连续打印输出的情况。按下RST键会有连续的打印信号输出,并不停止工作。
[url=]AiCube编程使用Xdate.mp4 ...[/url]
以上切成small模式,打印输出就都正常了,但是AiCube生成的连续打印输出的问题依旧。
[url=]STC8H&STC32G 原理图.pdf ...[/url]

手动编程内存使用xdata.mp4

15.96 MB, 下载次数: 5

第一个视频

AiCube编程使用Xdate.mp4

15.39 MB, 下载次数: 5

第二个视频

STC8H&STC32G 原理图.pdf

453.81 KB, 下载次数: 7

原理图

点评

看下原理图,这个不是RST,这个按键只是切换主控电源状态冷启动没接到P47上! 按下后,主控可能靠电容残余电荷还能跑一会。 连续发两包可能主控电源不稳重启了。 彻底掉电后,给上位机发乱码的是CH340不是主控, 可  详情 回复 发表于 2025-7-19 10:36
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-18 21:33:02 | 显示全部楼层
神*** 发表于 2025-7-18 15:55
用最新版,在新建立的文件夹中重新生成测试

刚下了Z版,于是使用,结果是有BUG,请移步看我的描述。
https://www.stcaimcu.com/thread-19169-1-1.html
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2983

回帖

6363

积分

荣誉版主

无情的代码机器

积分
6363
发表于 2025-7-19 10:36:41 | 显示全部楼层
XXld*** 发表于 2025-7-18 21:30
回家再次上电使用,手动模式确实也可以在xdata模式下运行了,但是依然有问题。我把单片机原理图及工作视 ...

看下原理图,这个不是RST,这个按键只是切换主控电源状态冷启动没接到P47上!

按下后,主控可能靠电容残余电荷还能跑一会。
连续发两包可能主控电源不稳重启了。
彻底掉电后,给上位机发乱码的是CH340不是主控,
可能你按下后RX引脚上电压漂导致的
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-20 09:11:14 | 显示全部楼层
erci*** 发表于 2025-7-19 10:36
看下原理图,这个不是RST,这个按键只是切换主控电源状态冷启动没接到P47上!

按下后,主控可能靠电容残 ...

可是为哈同样的用自编的程序就正常了呢,硬件的问题不应该是硬件不变,问题不会变的么?

点评

是否设置完全一致,代码完全一致?可以上传手动工程和AiCube工程看看  详情 回复 发表于 2025-7-20 09:55
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2983

回帖

6363

积分

荣誉版主

无情的代码机器

积分
6363
发表于 2025-7-20 09:55:33 来自手机 | 显示全部楼层
XXldhXX 发表于 2025-7-20 09:11
可是为哈同样的用自编的程序就正常了呢,硬件的问题不应该是硬件不变,问题不会变的么? ...

是否设置完全一致,代码完全一致?可以上传手动工程和AiCube工程看看
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-24 02:35 , Processed in 0.135363 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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