【STC单片机】VSCode PlatformIO开发环境详细配置过程

【STC单片机】VSCode PlatformIO开发环境详细配置过程


在这里插入图片描述

第一步:PlatformIO 8051单片机环境搭建

在这里插入图片描述

第二步: 安装python插件stcgal,用于上传hex文件到STC芯片上的。

stcgal - STC MCU ISP flash tool,就不做介绍使用了。

在这里插入图片描述

第三步: 新建工程在这里插入图片描述

  • 工程目录文件架构
    在这里插入图片描述

  • 工程源文件和头文件放置在src目录下面。

main.c
#include<lint.h>//包含SDCC_mcs51定义,使编辑器支持 __sfr
#include <8052.h>//这个51的头文件
#include "delay.h"
#define MAIN_Fosc 16000000uL
#define led P1_0
void main()
{
  while (1)
  {
      led = 0X01;
      delay_ms(500);
      led = 0X00;
       delay_ms(500);
  }
}

  • delay.c文件代码
#include <delay.h>

void delay_ms(unsigned int ms)
{
    unsigned int i;
    do
    {
        i = MAIN_Fosc / 13000;
        while (--i)
            ;
    } while (--ms);
}
  • delay.h文件代码
#ifndef	__DELAY_H
#define	__DELAY_H

#define MAIN_Fosc 16000000uL //晶振频率
void delay_ms(unsigned int ms);
#endif

在这里插入图片描述

配置头文件路径

  • 我的SDCC头文件目录:C:\Users\Administrator\.platformio\packages\toolchain-sdcc\include\mcs51
    在这里插入图片描述

根据上面的头文件位置,来设定下面的配置文件路径。

c_cpp_properties.json//文件内容

在这里插入图片描述

//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
    "configurations": [
        {
            "name": "PlatformIO",
            "includePath": [
                "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/include/mcs51",
                "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/include",
                "c:/Users/Administrator/Documents/PlatformIO/Projects/STC15W408AS/include",
                "c:/Users/Administrator/Documents/PlatformIO/Projects/STC15W408AS/src",
                "C:/Users/Administrator/.platformio/packages/tool-unity"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [
                    "C:\\Users\\Administrator\\.platformio\\packages\\toolchain-sdcc\\include\\mcs51",
                    "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/include",
                    "c:/Users/Administrator/Documents/PlatformIO/Projects/STC15W408AS/include",
                    "c:/Users/Administrator/Documents/PlatformIO/Projects/STC15W408AS/src",
                    "C:/Users/Administrator/.platformio/packages/tool-unity",
                    ""
                ]
            },
            "defines": [
                "F_CPU=16000000",
                "HEAP_SIZE=128",
                "PLATFORMIO=50204",
                ""
            ],
            "compilerPath": "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/bin/sdcc.exe",
            "compilerArgs": [
                "-mmcs51",
                ""
            ]
        }
    ],
    "version": 4
}
  • 8051头文件路径需要自己添加,如果没有添加,会显示波浪线,虽然不影响编译,但是感觉看的很不舒服。
  • 这个文件文章需要根据个人电脑安装路径来定,并不一定和我的一样。
                "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/include/mcs51",
                "C:/Users/Administrator/.platformio/packages/toolchain-sdcc/include",

编译和上传代码

  • 编译的话,只要包含了所需头文件路径没有问题,还有工程代码没有问题,编译就没什么问题。
  • Platform IO默认是需要手动按一下板子上的复位按键才能把程序下载到芯片里面的。我是受到《单片机—Mac下的开发环境【3】(STC单片机 + PlatformIO IDE)》启发,该烧写的命令。
  • 烧写命令修改地方:C:\Users\Administrator\.platformio\platforms\intel_mcs51\builder中的main.py文件,第145行:
    在这里插入图片描述
  • 原信息
if upload_protocol == "stcgal":
    f_cpu_khz = int(board_config.get("build.f_cpu")) / 1000
    stcgal_protocol = board_config.get("upload.stcgal_protocol")
    stcgal = join(env.PioPlatform().get_package_dir("tool-stcgal") or "", "stcgal.py")
    env.Replace(
        UPLOADERFLAGS=[
            "-P", stcgal_protocol,
            "-p", "$UPLOAD_PORT",
            "-t", int(f_cpu_khz),
            "-a"
        ],

默认在点击烧写时,会卡在下面这个地方。需要手动去按一下板子上的复位按键,才能下载到板子上。

在这里插入图片描述

  • 按下开发板上的复位按键后,开始下载到开发板的芯片当中了
    在这里插入图片描述

  • 参考stcgal帮助信息
    在这里插入图片描述

将烧录协议中的最后一个参数-a去掉。因为我自制的开发板使用的是CH340C,使用了RTS引脚作为下载时的联络信号,来给芯片断电复位的电路。换句话说,我的板子支持自动下载功能。

  • -a, --autoreset cycle power automatically by asserting DTR
if upload_protocol == "stcgal":
    f_cpu_khz = int(board_config.get("build.f_cpu")) / 1000
    stcgal_protocol = board_config.get("upload.stcgal_protocol")
    stcgal = join(env.PioPlatform().get_package_dir("tool-stcgal") or "", "stcgal.py")
    env.Replace(
        UPLOADERFLAGS=[
            "-P", stcgal_protocol,
            "-p", "$UPLOAD_PORT",
            "-t", int(f_cpu_khz),
            
                   ],
  • 去掉-a参数后,整个下载过程信息
    在这里插入图片描述
> Executing task in folder STC15W408AS: C:\Users\Administrator\.platformio\penv\Scripts\platformio.exe run --target upload <

Processing stc15w408as (platform: intel_mcs51; board: stc15w408as)
------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/intel_mcs51/stc15w408as.html
PLATFORM: Intel MCS-51 (8051) (1.2.3) > Generic STC15W408AS       
HARDWARE: STC15W408AS 11MHz, 512B RAM, 8KB Flash
PACKAGES:
 - tool-stcgal 1.104.0 (1.4)
 - toolchain-sdcc 1.30804.10766 (3.8.4)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Checking size .pio\build\stc15w408as\firmware.hex
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
Flash: [          ]   2.0% (used 161 bytes from 8192 bytes)
Configuring upload protocol...
AVAILABLE: stcgal
CURRENT: upload_protocol = stcgal
Looking for upload port...
Auto-detected: COM10
Uploading .pio\build\stc15w408as\firmware.hex
Waiting for MCU, please cycle power: done
Target model:
  Name: STC15W408AS
  Magic: F51F
  Code flash: 8.0 KB
  EEPROM flash: 5.0 KB
Target frequency: 15.910 MHz       
Target BSL version: 7.2.5T
Target wakeup frequency: 35.675 KHz
Target options:
  reset_pin_enabled=True
  clock_source=external
  clock_gain=high
  watchdog_por_enabled=False
  watchdog_stop_idle=True
  watchdog_prescale=256
  low_voltage_reset=False
  low_voltage_threshold=3
  eeprom_lvd_inhibit=True
  eeprom_erase_enabled=False
  bsl_pindetect_enabled=False
  por_reset_delay=long
  rstout_por_state=high
  uart2_passthrough=False
  uart2_pin_mode=normal
  cpu_core_voltage=unknown
Loading flash: 161 bytes (Intel HEX)
Switching to 19200 baud: done
Erasing flash: done
Writing 512 bytes: ........ done
Finishing write: done
Setting options: done
Target UID: F51FC6360E298E
Disconnected!
========================================== [SUCCESS] Took 4.52 seconds ==========================================

终端将被任务重用,按任意键关闭。
  • 本文为Perseverance52博主原创文章,未经博主允许,不得转载!
要在VSCode配置51单片机开发环境,你可以按照以下步骤进行操作: 1. 首先,安装虚拟机软件,以模拟一个完全从0开始的环境。这可以保证你的开发环境的独立性和稳定性。你可以选择常用的虚拟机软件,如VirtualBox或VMware。 2. 安装Keil软件。Keil是一款常用的单片机开发工具,提供了丰富的功能和易于使用的界面。你可以从官方网站下载Keil,并按照提示进行安装。 3. 在VSCode中安装PlatformIO IDE插件。PlatformIO IDE是一个单片机开发的集成环境,它内部包含了编译器,并能够帮助你进行链接、编译和生成二进制文件等操作。你可以在VSCode的插件市场中搜索并安装PlatformIO IDE插件。 4. 配置PlatformIO IDE插件。在安装完PlatformIO IDE插件后,你需要进行一些基本的配置。首先,你需要指定使用的单片机型号,比如STC89C52RC。其次,你需要配置编译器和生成的二进制文件的路径等。这些配置可以在PlatformIO IDE插件的设置中进行。 5. 创建一个新的项目。使用PlatformIO IDE插件,你可以在VSCode中创建一个新的单片机项目。在项目中,你可以编写程序代码,并进行编译、调试和上传到单片机等操作。你可以使用该项目实现各种功能,比如使用单片机引脚的PWM输出来实现LED的拖尾交替输出。 总结起来,要在VSCode配置51单片机开发环境,你需要安装虚拟机软件,安装Keil,安装PlatformIO IDE插件,并进行相应的配置。然后,你可以在VSCode中创建一个新的项目,并使用PlatformIO IDE插件进行开发和调试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vscode+platformio IDE+sdcc搭建51单片机开发环境(win764)](https://blog.csdn.net/weixin_42485732/article/details/111938463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [51单片机开发环境配置(使用VScode开发)](https://blog.csdn.net/YBH1916326465/article/details/128200761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值