下面是一端程序STC32G的程序源代码:
- /*main.c
- Designed by Bill Liu
- Version 0.0
- Modified last by Bill Liu on 06/22/2022
- */
-
- #include "main.h"
- #include "config.h"
-
- void main()
- {
- STC32G_P7PinsInit(PIN3, BI_IO, 0, 0, 0, 0, 1, 1);
- //P73 = 0;
- STC32G_P0PinsInit(0xFF, BI_IO, 1, 0, 0, 0, 1, 1); //init to bidirectional I/O, pull up disable, pull down disable , dive ability enhance disable,
- //high speed disable, digital singal input enable, schmitt trigger enable
- STC32G_P2PinsInit(0xFF, BI_IO, 0, 0, 0, 0, 1, 1);
- P0 = 0xAA;
- P2 = 0xFF;
- //P73 = 0;
- while(1)
- {
-
- if(P2 == P0)
- P73 = 0;
- else
- P73 = 1;
- }
- }
- //End of main()
Keil C251的Target项的设置如下:

L251 Misc的设置如下:

编译上面的程序,结果如下:

修改Keil C251的Target项的设置如下:

编译同一程序,结果如下:

出现了4个Warnings. 再将修改Keil C251的Target项的设置修改,如下:

编译同一程序,结果如下:

无Warning。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:

无Warning。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:

无Warning。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:

无Warning。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:

无Warning。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:
出现错误。再修改Keil C251的Target项的设置,如下:

编译同一程序,结果如下:

编译成功,无Warning。
从上面的示例可以看出,同一程序,选用不同的设置,在优化等级不做调整的情况下,编译后的程序code大小是不一样的。选用有些可能还会编译出错。
现在用下面的设置编译改程序:

编译结果如下:

将编译后的得到的hex文件,下载 到单片机,正常情况红色LED应该亮起。下载后的结果如下:

红色LED确实亮起,说明程序没问题。再改变Keil C251的Target项的设置,如下:

编译程序,结果如下:
编译通过,没有Warning。将编译后的得到的hex文件,下载 到单片机,正常情况红色LED应该亮起。下载后的结果如下:

红色LED并未亮起。说明改设置编译得到的程序,不能正常运行。
STC 32G系列单片机依然可以像STC 8位 8051单片机一样通过用ch340 USB转串口模块实现ISP下载程序。我的下载工具如下:

一般情况下,不用理会STC 32G单片机的时钟设置,在下载时选择需要的工作频率即可STC_ISP下载工具软件会自动将其设置为自动追频模式。下载界面如下: