STC AI助手建议向你反馈;使用AICUBE生成STC8H1K08时出现串口数据乱码的问题;STC AI助手给出的建议如下:
六、处理建议建议 1(最推荐):保持 CLK_Init() 屏蔽 下载时在 AIapp-ISP 设定 22.1184MHz,工程 SYSCLK 宏也写 22118400,二者一致即可。这是 STC 官方推荐做法:频率由 ISP 下载校准决定,程序里不再重复调 IRC,精度最高(你实测 -0.011%)。 建议 2:如果坚持要保留 CLK_Init() 结构 需要把 HIRC_22M1184() 换成符合两频段芯片的写法,并且不要写 27M 的 VRTRIM。按手册,在 STC8H1K08 上选择 22.1184MHz(20MHz 频段)应当只操作 SEL[0]: /* 仅示意,需你确认 AICube 中对应的宏名 */IRCBAND = (IRCBAND & ~0x01) | 0x00; // SEL[0]=0 → 20MHz 频段(两频段芯片)IRTRIM = CHIPID11; // 20M 频段对应的 IRC 校准值/* 不写 VRTRIM,或写入与 20M 频段匹配的值 */📋但我强烈不建议你走这条路,因为 IRTRIM 用程序读 CHIPID 再写回,精度通常不如 ISP 下载时用参考时钟校准的结果,115200 下容易出问题。 建议 3:向 AiCube 反馈 你这份 HIRC_22M1184() 宏里用 SEL[1:0]=10(四频段 27M 编码)去配 STC8H1K08(两频段),属于生成器对两频段型号适配不严谨(VRTRIM 也取了 27M 的值)。建议在 AIapp-ISP / AiCube 里把芯片型号选成 STC8H1K08 后,检查生成的 CLK_Init() 是否真的匹配"两频段"芯片;如果生成代码确实如此,可向 STC 官方反馈该适配问题。
|