• STC 32位8051单片机开发实例教程 三 程序编译设置与下载


    下面是一端程序STC32G的程序源代码:

    1. /*main.c
    2. Designed by Bill Liu
    3. Version 0.0
    4. Modified last by Bill Liu on 06/22/2022
    5. */
    6. #include "main.h"
    7. #include "config.h"
    8. void main()
    9. {
    10. STC32G_P7PinsInit(PIN3, BI_IO, 0, 0, 0, 0, 1, 1);
    11. //P73 = 0;
    12. 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,
    13. //high speed disable, digital singal input enable, schmitt trigger enable
    14. STC32G_P2PinsInit(0xFF, BI_IO, 0, 0, 0, 0, 1, 1);
    15. P0 = 0xAA;
    16. P2 = 0xFF;
    17. //P73 = 0;
    18. while(1)
    19. {
    20. if(P2 == P0)
    21. P73 = 0;
    22. else
    23. P73 = 1;
    24. }
    25. }
    26. //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下载工具软件会自动将其设置为自动追频模式。下载界面如下:

     

     

     

     

  • 相关阅读:
    用层序遍历建一棵二叉树
    约束的概念和分类(包含外键约束)
    Qt官方示例:Fridge Magnets Example(冰箱贴)
    非结构化知识抽取 -- pipeline方法 joint方法
    Mysql 45讲学习笔记(十三)表数据删掉一半,表文件大小不变
    SQLAlchemy 在 Flask 应用中的使用和最佳实践
    Servlet的基础详细笔记
    一个类的加载过程实例
    现在产品经理已经开始泛滥了吗?
    一天撸一个财务APP系统【安卓端+前端+后端】
  • 原文地址:https://blog.csdn.net/billliu66/article/details/125551835