这里写自定义目录标题

  • PIO 自定义板子方法
    • 1.为boards添加json文件
    • 2. 为板子添加variant
      • 2.1 复制一份variant_generic.cpp / .h 文件
      • 2.2 修改文件宏定义
      • 2.3 *.ld 链接文件

PIO 自定义板子方法

1.为boards添加json文件

\platforms\ststm32\boards路径下添加或复制json文件。

并根据添加的板子MCU型号,修改json文件内容,如这边添加的是STM32G030F6系列:添加“bPill_g030.json”文件

{"build": {"core": "stm32","cpu": "cortex-m0plus","extra_flags": "-DSTM32G0xx -DSTM32G030xx","f_cpu": "64000000L","framework_extra_flags": {"arduino": "-D__CORTEX_SC=0"},"mcu": "stm32g030f6","product_line": "STM32G030xx","variant": "STM32G0xx/G030F6P"},"debug": {"default_tools": ["stlink"],"jlink_device": "stm32g030f6","onboard_tools": ["stlink"],"openocd_target": "stm32g0x","svd_path": "STM32G030.svd"},"frameworks": ["arduino"],"name": "ST bPill-G030","upload": {"maximum_ram_size": 8192,"maximum_size": 32768,"protocol": "serial","protocols": ["blackmagic","cmsis-dap","dfu","jlink","serial","stlink"]},"url": "https://www.st.com/en/evaluation-tools/nucleo-g030f6.html","vendor": "ST"
}

其中:

"variant": "STM32G0xx/G030F6P" :为PlarromIO的 \packages\framework-arduinoststm32\目录中对应的芯片 variant 文件夹,它是自定义板子IO和Arduino中IO名字对应所在文件夹。

name: 板子名称,可自定义

"protocol": "serial": 首选下载方法为Serial串口

2. 为板子添加variant

packages\framework-arduinoststm32\variants\在arduinoFramework中的 variants文件夹中,保存的是正对某块MCU芯片的板子变种。

包含文件及说明:

  1. boards_entry.txt : 包含通用变体板子声明,简化 board.txt 文件中的板子添加。
  2. generic_clock.c: 包含系统默认时钟配置函数WEAK void SystemClock_Config(void),WEAK弱函数,可在系统主程序中重定义修改系统时钟
  3. PinNamesVar.h:

2.1 复制一份variant_generic.cpp / .h 文件

​ 复制后的文件名修改为variant_XXX.cpp / .h ,这边的XXX一定要和第一步中的Json文件名字一致。修改后的文件夹内文件如下图:

2.2 修改文件宏定义

​ 修改重命名后的variant_BPILL_G030.cpp文件内的宏定义,宏定义名称格式为ARDUINO_XXX;其中XXX为 json文件名的全大写 形式。如下图:

​ 同时为generic_clock.c文件添加同用的宏定义,使其支持我们新定义的开发板,如下图:

2.3 *.ld 链接文件

如果你的以上文件夹内没有 *.ld 文件,自行想办法去获取对应芯片的 ld 文件,(去MDK目录下看看或使用cubemx生成一个项目试试)。 复制到本目录。

如果添加好编译仍然有问题,请试着在json中添加以下配置:

修改json文件后需要使用PIO重新 新建项目测试。

platformIO 自定义板子方法相关推荐

  1. MVC Razor:自定义Helper方法

    在使用自定义Helper方法时,开始我试了很多次都不成功一直报错"找不到WebMatrix.WebData.dll.WebMatrix.Data.dll". 应该是一个bug,估计 ...

  2. 何时使用自定义HTTP 方法

    何时使用自定义HTTP 方法 问题描述 您想知道使用自定义HTTP 方法的影响. 解决方案 避免使用非标准的自定义HTTP 方法,因为引入新方法后,就不能依赖那些只了解标准HTTP 方法的现有软件了. ...

  3. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  4. Python基础入门:正则re.sub使用自定义替换方法

    在使用正则替换时,有时候需要将匹配的结果做对应处理,便可以使用自定义替换方法. re.sub的用法为: re.sub('匹配表达式',替换字符或替换函数,替换次数,其他参数) 例如,加入将字符串中的$ ...

  5. 为record类型自定义Equals方法

    前言 record类型,这是一种新引用类型,而不是类或结构.record与类不同,区别在于record类型使用基于值的相等性. 例如: public record DemoRecord(int id) ...

  6. PHP发送数据到指定方法,php通过header发送自定义数据方法_php技巧

    下面小编就为大家分享一篇php通过header发送自定义数据方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 本文将介绍如何通过header发送自定义数据.发送请求时,除了可以使用 ...

  7. PyTorch框架学习七——自定义transforms方法

    PyTorch框架学习七--自定义transforms方法 一.自定义transforms注意要素 二.自定义transforms步骤 三.自定义transforms实例:椒盐噪声 虽然前面的笔记介绍 ...

  8. java自定义一个方法,用于返回两个整数的和

    java自定义一个方法,用于返回两个整数的和 /*** 自定义一个方法* 用于返回两个整数的和*/ public class Test17 {public static int getSum(int ...

  9. BootstrapTable自定义ajax方法

    bootstrapTable可以自定义ajax方法,通过ajax请求获得数据返回展示在bootstrapTable表格中,这种方式我自认为比较简单常用.本篇还加了简单增删改操作,获得表格选中的数据,以 ...

最新文章

  1. 千亿参数大模型时代,QQ浏览器团队十亿级小模型「摩天」登顶CLUE
  2. 【Linux】【服务器】 CentOS7下卸载MySQL详细过程步骤
  3. 创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积
  4. 四则运算之Right-BICEP测试
  5. kernel: CPU9: Temperature above threshold
  6. C语言计算字符串的长度
  7. 转本计算机考试题目,2011江苏专转本计算机考试模拟试题答案
  8. typescript 学习
  9. javascript基础系列:DOM相关的技术知识点
  10. 数据存储技术-专题介绍
  11. ESP8266 WIFI模块学习之路(9)——C++实现通过电脑串口读取ESP8266数据
  12. MDIO总线相关_2
  13. 剪辑视频时PR播放卡顿不连贯|如何修复Premiere软件中播放太卡问题
  14. 让ChatGPT来制作Excel表格,ChatGPT实现文本和表格的相互转换
  15. 一条命令(dd)制作Centos(Linux)优盘(U盘)启动盘
  16. firstvalue函数mysql_MySQL 窗口函数之头尾函数
  17. QCA-WIFI如何编译IPQ8074代码
  18. char、varchar、varchar2区别
  19. HDU 5454 Excited Database 线段树的维护
  20. HM数据科学库-matplotlib(二)

热门文章

  1. 【模拟IC】系统频率稳定性分析与极点补偿技术介绍
  2. 【设计模式】备忘录模式(以电影明日边缘为例)
  3. 花老湿学习OpenCV:分水岭原理和实现watershed()
  4. Centos7配置Hadoop出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)的解决
  5. 【实战记录】使用阿里云的OSS云存储,上传与删除图片及遇到的问题
  6. 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
  7. 北航 2018计算机学院排课,关于2018—2019学年秋季学期排课的通知
  8. 产业区块链一周动态丨蚂蚁集团计划上市,苏州成立10亿元区块链基金
  9. 温水煮青蛙,我还能活多久
  10. 认识Python控制流