下面是一端程序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下载工具软件会自动将其设置为自动追频模式。下载界面如下: