找回密码
 立即注册
楼主: 神农鼎

程序自动生成器,AiCube-ISP V6.96A, STC89/15/STC8H/STC32/8051U

 火... [复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:632
  • 最近打卡:2025-08-23 07:52:22
已绑定手机

54

主题

1892

回帖

3566

积分

论坛元老

积分
3566
发表于 2025-7-7 22:06:33 | 显示全部楼层
请问能不能在生成工程时直接也把相关功能的常用库函数也带上,
比如我需要adc功能就把adc常用的函数直接生成,需要dma也直接生成;
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:632
  • 最近打卡:2025-08-23 07:52:22
已绑定手机

54

主题

1892

回帖

3566

积分

论坛元老

积分
3566
发表于 2025-7-7 22:07:42 | 显示全部楼层
就是直接把官方的库函数直接揉进去
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-08-23 16:09:40

31

主题

406

回帖

3336

积分

荣誉版主

积分
3336
发表于 2025-7-9 18:21:09 | 显示全部楼层
在AiCube的SPI通用设置里,【SPI时钟分频】的选项,看得有些迷糊了
截图202507091701568725.jpg


1、
系统时钟频率 写成了 SPICLK

给SPI的时钟进行分频 有些说不通。

查看STC8H和AI8051U的规格书,写的是 SYSclk

截图202507091704071541.jpg

所以  SPI的时钟频率(SPICLK) 是将 输入给SPI的时钟(SYSCLK) 进行分频 才说得通。

以及,按照规格书的说法,“SPI时钟分频”的表述,或许也可以直接按照规格书里的叫法,写成“SPI时钟频率”(不知道工作量大不大)

===================================================
2、
频率列表列出的分频 “2,4,8,16” ,有些模糊

在AI8051U的规格书里,SPI的频率选择,是只有 “2,4,8,16”,所以列表选项里没有问题。

截图202507091717541525.jpg

但在STC8H的规格书里可以看到,不同的系列,SPI支持的速度分成两种,
光是STC8H8K64U系列的A和BCD版本,对快速SPI就有不同的支持。

截图202507091726337643.jpg



但在AiCube的STC8H的SPI频率列表中,只列出了包括快速SPI的 “2,4,8,16”,
而没有体现出只支持普通SPI的那些系列的 “4,8,16,32”。
假如用的是STC8H1K08单片机,可能会误以为 可以选择2分频,而运行时,实际上却是32分频。

由于两种系列的SPR配置里,前三个是相同的“4,8,16”,只有SPR=3的时候才有“/32”和“/2”的区别
所以建议可以在下方的说明栏里,把 不同系列适用哪些选项 这一点备注出来,(比如老版STC-ISP的延时函数生成器对不同选项支持哪些系列就有详细备注)
然后列表选项里,“4,8,16,32”之后,直接再追加一个“SYSCLK/2(快速SPI)”

在生成的代码里
SPI_SetClockDivider2() 和 SPI_SetClockDivider32()
都调用 SPI_SetClockDivider(3)

这样就完美了
(或许将来更加完善之后,直接可以通过选择具体单片机型号,自动匹配列表里的分频数说明,就像STC15的两个系列)



======================================================

3
AiCube的STC15的两个型号,频率一栏的输入时钟也是“SPICLK”。

==========================================================
==========================================================

综合前两点,感觉STC15的规格书里的表述方法就比较严谨。
在旧版规格书里,SPI时钟频率,写的就是“CPU_CLK”,最新STC15H2K64S4里面写的也是“SYSclk”
截图202507091801259386.jpg 截图202507091807341777.jpg

AiCube里对应的分频数都是正确的
截图202507091758042187.jpg 截图202507091758558230.jpg





能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-08-23 15:53:09
已绑定手机

0

主题

36

回帖

342

积分

中级会员

积分
342
发表于 2025-7-9 19:50:51 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:112
  • 最近打卡:2025-08-22 20:27:53
已绑定手机

1

主题

6

回帖

541

积分

高级会员

积分
541
发表于 2025-7-12 10:00:23 | 显示全部楼层
生成文件后,自动打开的是空文件,还要重新打开一次。以前版本直接打开就进入工程了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-08-23 16:09:40

31

主题

406

回帖

3336

积分

荣誉版主

积分
3336
发表于 2025-7-15 10:40:50 | 显示全部楼层
楼上说的自动打开的是空文件的情况也遇到了,
同时出现的情况是360突然开始对一个“aicube.exe”文件报毒

(360是随时更新的,不知道哪个功能触发了新病毒库)。
截图202507151047589507.jpg


这时自动打开的就是一个没有任何工程的空Keil。
但是生成的工程文件,手动可以正常打开。

同样是AiCube(V1.00T),前几天也没有这个现象。
试着从系统临时目录里把文件拷出来,也会马上弹窗。

截图202507151119219705.jpg

关闭360,或者在报毒弹窗里将“aicube.exe”添加白名单之后,自动打开工程就一切恢复正常了。
截图202507151050184477.jpg



=======================================================================

另外用上个版本AiCube(V1.00S)试了一下,那个文件复制到哪里都不会报毒








能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-08-23 16:09:40

31

主题

406

回帖

3336

积分

荣誉版主

积分
3336
发表于 2025-7-21 17:45:18 | 显示全部楼层

STC8H的DMA有效范围,注释里写的是不是应该是1-256?


截图202507211743466914.jpg


能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-08-21 21:27:12
已绑定手机
已实名认证

116

主题

2712

回帖

6806

积分

版主

积分
6806
发表于 2025-7-25 09:05:15 | 显示全部楼层
提一个小建议
1.在系统初始化的时候,能否在
  1. USBLIB_Init();  //USB库初始化
复制代码

的前后分别加入1ms的延时

否则下载后会大概率出现没有CDC功能,前后各加入1ms后,就正常了
不加的情况下,通过多次用电源复位,也有概率出现CDC
以下是测试有问题的工程,屏蔽了main.c中的延时函数,解开屏蔽即可正常出现CDC端口
timer.zip (668.95 KB, 下载次数: 14)
截图202507250905069725.jpg

2.能否在创建项目的时候,提供两个选项:打开工程文件和不打开工程文件
否则如果打开工程文件,发现不对修改后,再次生成又会打开一个工程,反复几次就会打开好多个keil

3.添加了用户的源文件以后,能否下次更新的时候进行保留?目前来看进行一次配置更新,这部分就会给删掉,需要自己重新添加
截图202507251023221403.jpg



点评

第一点的建议,延时语句在后续版本会加上 第二点、此功能软件已支持 [attachimg]109798[/attachimg] 第三点、此功能软件已支持 请使用最新的AiCube V.100V  详情 回复 发表于 2025-7-25 11:00
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-08-21 21:27:12
已绑定手机
已实名认证

116

主题

2712

回帖

6806

积分

版主

积分
6806
发表于 2025-7-25 10:13:22 | 显示全部楼层
zh*** 发表于 2025-7-7 17:34
这里的端口初始化是对所有的端口进行通用的初始化代码,
即上电后首先默认将所有的端口都初始化为准双向口 ...

发现一个引起代码卡死的地方:

串口使能超时中断,且打开了串口中断的时候,没有加入清除串口超时中断的代码
这样会导致串口接收数据后因为一直存在串口超时中断而卡死
截图202507250949415536.jpg

截图202507251013193471.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-08-23 08:57:24
已绑定手机

45

主题

2172

回帖

7590

积分

论坛元老

积分
7590
发表于 2025-7-25 10:41:32 | 显示全部楼层
王*** 发表于 2025-7-25 10:13
发现一个引起代码卡死的地方:

串口使能超时中断,且打开了串口中断的时候,没有加入清除串口超时中断的 ...

我刚用V6.95Z版本ISP软件的AiCube试了一下,AI8051U开启串口超时中断时中断函数里有处理超时中断的代码:

截图202507251040133925.jpg
截图202507251041079990.jpg

点评

如果是重复建立的项目,并且有修改配置 请注意 // // 之间的代码是不会变的 你测试的这种情况应该是,第一次测试时没有选择超时中断 产生的默认代码就不会有清超时中断标志的语句 第二次在原来项目的基础上修改,增  详情 回复 发表于 2025-7-25 11:04
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-24 04:20 , Processed in 0.123305 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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