jwd
发表于 2025-7-7 22:06:33
请问能不能在生成工程时直接也把相关功能的常用库函数也带上,
比如我需要adc功能就把adc常用的函数直接生成,需要dma也直接生成;
jwd
发表于 2025-7-7 22:07:42
就是直接把官方的库函数直接揉进去
大明狐
发表于 2025-7-9 18:21:09
在AiCube的SPI通用设置里,【SPI时钟分频】的选项,看得有些迷糊了{:yun:}
1、
系统时钟频率 写成了 SPICLK
给SPI的时钟进行分频 有些说不通。
查看STC8H和AI8051U的规格书,写的是 SYSclk
所以SPI的时钟频率(SPICLK) 是将 输入给SPI的时钟(SYSCLK) 进行分频 才说得通。
以及,按照规格书的说法,“SPI时钟分频”的表述,或许也可以直接按照规格书里的叫法,写成“SPI时钟频率”(不知道工作量大不大)
===================================================
2、
频率列表列出的分频 “2,4,8,16” ,有些模糊
在AI8051U的规格书里,SPI的频率选择,是只有 “2,4,8,16”,所以列表选项里没有问题。
但在STC8H的规格书里可以看到,不同的系列,SPI支持的速度分成两种,
光是STC8H8K64U系列的A和BCD版本,对快速SPI就有不同的支持。
https://www.stcaimcu.com/data/attachment/forum/202507/09/170407xce6gzjmcncjkzjg.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”
AiCube里对应的分频数都是正确的
{:qiang:}{:qiang:}{:qiang:}
karth
发表于 2025-7-9 19:50:51
{:qiang:}{:qiang:}
axiang974
发表于 2025-7-12 10:00:23
生成文件后,自动打开的是空文件,还要重新打开一次。以前版本直接打开就进入工程了。
大明狐
发表于 2025-7-15 10:40:50
楼上说的自动打开的是空文件的情况也遇到了,
同时出现的情况是360突然开始对一个“aicube.exe”文件报毒
(360是随时更新的,不知道哪个功能触发了新病毒库)。
这时自动打开的就是一个没有任何工程的空Keil。
但是生成的工程文件,手动可以正常打开。
同样是AiCube(V1.00T),前几天也没有这个现象。
试着从系统临时目录里把文件拷出来,也会马上弹窗。
关闭360,或者在报毒弹窗里将“aicube.exe”添加白名单之后,自动打开工程就一切恢复正常了。
=======================================================================
另外用上个版本AiCube(V1.00S)试了一下,那个文件复制到哪里都不会报毒
大明狐
发表于 2025-7-21 17:45:18
STC8H的DMA有效范围,注释里写的是不是应该是1-256?
王昱顺
发表于 2025-7-25 09:05:15
提一个小建议
1.在系统初始化的时候,能否在USBLIB_Init();//USB库初始化
的前后分别加入1ms的延时
否则下载后会大概率出现没有CDC功能,前后各加入1ms后,就正常了
不加的情况下,通过多次用电源复位,也有概率出现CDC
以下是测试有问题的工程,屏蔽了main.c中的延时函数,解开屏蔽即可正常出现CDC端口
2.能否在创建项目的时候,提供两个选项:打开工程文件和不打开工程文件
否则如果打开工程文件,发现不对修改后,再次生成又会打开一个工程,反复几次就会打开好多个keil
3.添加了用户的源文件以后,能否下次更新的时候进行保留?目前来看进行一次配置更新,这部分就会给删掉,需要自己重新添加
王昱顺
发表于 2025-7-25 10:13:22
zhp 发表于 2025-7-7 17:34
这里的端口初始化是对所有的端口进行通用的初始化代码,
即上电后首先默认将所有的端口都初始化为准双向口 ...
发现一个引起代码卡死的地方:
串口使能超时中断,且打开了串口中断的时候,没有加入清除串口超时中断的代码
这样会导致串口接收数据后因为一直存在串口超时中断而卡死
乘风飞扬
发表于 2025-7-25 10:41:32
王昱顺 发表于 2025-7-25 10:13
发现一个引起代码卡死的地方:
串口使能超时中断,且打开了串口中断的时候,没有加入清除串口超时中断的 ...
我刚用V6.95Z版本ISP软件的AiCube试了一下,AI8051U开启串口超时中断时中断函数里有处理超时中断的代码: