华大(小华)HC32L130工程创建

2023-11-12

一、我们先来认识一下华大驱动库包下的文件功能。注意,华大提供的包是没有M0+内核标准文件的,(HC32L130 是M0+)ST提供的驱动库包是有的,就是CORE文件夹。

第一步:创建文件夹目录
具体这个创建文件夹目录的含义可以看STM32工程创建理论篇
第二步:将华大提供的driver文件内容(这些文件是从华大驱动库包)复制到HC32L130x_FWLib
第三步:将内核相关的文件从commom和KEIL的烧录算法文 复制到CMSIS。注:common文件是IAR和KEIL通用。

第四步:将source文件下的内容拷贝过来到USER。IAR和KEIL通用。IAR和KEIL通用。

第五步:随便找一个例程将其添加启动文件复制至starup

二、在KEIL5创建工程

第一步:安装芯片支持包,可以到华大官网下载对应的芯片MDK支持包的既可

第二步:创建新工程

输入名称,点击保存到Projiect文件下

第三步:选择对应的芯片包对应的芯片型号(前提我们要小华官网先下载对应的MDK芯片支持包,下载下来双击安装即可)

勾选内核标准组件。注意,华大驱动库包是没有提供标准内核文件的(但ST提供的DEMO驱动包基本有内核文件,好像只有M4才没提供),不论是华大还是ST单片机,使用的内核文件都是通用的,这里有两种方法,1、勾选内核组件。2、复制ST库的CORE M0+内核标准文件。本次我们直接选择方法1。

方法1。直接选择KEIL提供的组件。

方法2 。复制ST库的内核标准文件到我们的CMSIS目录下,注意HC32L是M0+内核。

三、添加文件

第一步:创建目录添加文件与.c文件

APP还没放代码,所以为空闲预留,后续自己可以添加外设驱动放在这里

BSP比如GPIO\timer等等,大家 自己可以放

库文件添加大家根据自己需求来放置

第二步:将编译修改成5 设置编译器5 (5比较稳定)

第三步:细心的同学肯定发现刚刚我们移植的CMSIS目录下的MDK算法文件没有用到,当然你也可以用上。如下,这个文件只要跟你到时候仿真有关系,我们还是添加下,这个具体含义我不太懂。

第四步:输出hex打勾

第五步:声明头文件同时还要在配置中勾选支持C99模式:

第六步:编译优化配置。华大驱动库中断的特点是回调函数调用,而编译器是会优化掉一些认为不用的函数的,所以我们要屏蔽优化回调函数。--keep=*Handler

第五步:输出hex
第六步:细心的同学肯定发现刚刚我们移植的CMSIS目录下的MDK算法文件没有用到,当然你也可以用上。如下,这个文件只要跟你到时候仿真有关系,我们还是添加下,这个具体含义我不太懂。

第六步:主函数编辑

我们从官方提供的DEMO复制一个GPIO的主函数的内容到我们工程的主函数上

编译完下

有警告

(1)回车添加新行解决

另外说明几个库存在的警告问题

(1)如果有添加ram.c,这个错误显示是库文件ram.c的类型与头文件的类型不一致,报错的。

从理论上分析官方提供的库不应该有这种错误才是,既然知道错误我们就进行修改,把头文件的类型更换成void,就可以。

修改完,错误没有了

(2)如果有添加adc.c库文件

上面这个警告表示不会执行到这一句话,有这一句警告

上面这个警告表示这个参数超出“int”范围,应该是认为是有符号位int ,如果是无符号位的int应该就不会报错

那么回过头看看官方提供的代码,发现官方提供的DEMO没有警告,警告查找发现他默认使用的是编译器6版本。

所以要想去除这个警告,要么更改为编译器6 ,要么自己不取管这个警告就可以,目前公司还是用5编译器,主管表示编译器6还不是跟稳定兼容。

所以还是用编译器5 ,警告我们就先忽略就可以

如果我们也改成V6版本编译器,重新编译,则无警告

那么到这里,我们整个裸机工程创建结束啦!

四、附录

工程文件

链接:https://pan.baidu.com/s/1ZOnC9oFXpbOnATARrSVvRQ

提取码:p9yn

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华大(小华)HC32L130工程创建 的相关文章

随机推荐

  • SpringAop使用的到底是JDK动态代理还是Cglib?

    1 从源码分析 optimize标志已设置 也就是为true 设置proxyTargetClass 目标代理类 标志 更改proxyTargetClass 目标代理类 标志的方法 没有指定代理接口 2 错误的推论 3 最终的推论 什么时候使
  • CodeGeeX中这些隐藏的设置,你知道吗?

    随着CodeGeeX整体性能的升级 越来越多的用户发现CodeGeeX的很多实用功能 能够帮助程序员更快更好的编写代码和解决技术问题 近期 我们看到许多用户在使用CodeGeeX的过程中 有一些相似的疑问 比如 很多人希望能够通过调整设置
  • 以太网流量控制——PAUSE帧

    http www tuicool com articles Bzu2uuf 今天在测试DPDK性能的时候 发现发包工具的发包速率无法提升上去 千兆网卡设置速率70W qps 只能发出1W的速率 抓包发现有大量的PAUSE流控帧 一 PAUS
  • High-resolution Face Swapping via Latent Semantics Disentanglement

    High resolution Face Swapping via Latent Semantics Disentanglement 人脸视频交换 从浅层派生结构属性 从深层派生外观属性 结构转移潜在方向 进一步分离结构属性中的身份和姿态信
  • 【算法学习笔记】20:朴素Dijkstra与堆优化Dijkstra(无负权边单源点最短路)

    Dijkstra算法用于在所有边权都非负的图上 求单源点最短路 设 n n n是图上结点的数量 m m m是边的数量 则朴素Dijkstra算法的时间复杂度是 O
  • Oracle 定时任务详解(dbms_job)

    文章目录 1 概述 2 dbms job 2 1 提交 2 2 暂停 2 3 修改 2 4 运行 2 5 删除 1 概述 1 数据来源包 dbms job Oracle 10g 前常用 2 目前已被 dbms scheduler 所取代 且
  • 百亿补贴通用H5导航栏方案

    背景 在移动端页面中 由于屏幕空间有限 导航条扮演着非常重要的角色 提供了快速导航到不同页面或功能的方式 用户也通常会在导航条中寻找他们感兴趣的内容 因此导航条的曝光率较高 在这样的背景下 提供一个动态灵活的导航条 为产品赋能 变得尤其重要
  • unity 获取小车速度及前进或者后退

    项目需要获得小车移动的数据 用来驱动轮子正传或者反转 所以得想法获取小车的移动量 首先想到的是 使用Unity的API Rigidbody velocity 但是实际操作起来却不是那么回事 貌似Rigidbody velocity只能响应物
  • 黑苹果必备OC配置工具OpenCore Configurator 2.12.0.0中文版

    OpenCore Configurator 中文版是非常优秀的一款黑苹果OC配置工具 可以通过提供更加通用和模块化的系统来解决Clover带来的限制和问题 拦截内核加载以插入高级的rootkit 而该rootkit旨在替代Clover Op
  • Leetcode 78. 子集(回溯法)

    子集 回溯法 class Solution List
  • 内网渗透篇

    域信息搜集命令 1 查询当前环境 whoami ipconfig all 2 查询当前域用户 net user domain 3 查询域控 net time 4 查询域工作组 net group domain 5 查询域管理用户 net g
  • Java学习笔记

    public char charAt int index 根据索引返回字符 public int length 返回此字符的长度 数组的长度 数组名 length 字符串的长度 字符串对象 length StringBuilder Stri
  • 黑马程序员-微信小程序-Day3笔记(P38-P59)

  • CMD命令进入某个目录

    1 开始 gt 运行 gt CMD 2 进入某个磁盘 直接盘符代号 如D 不用CD 命令切换 3 进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E Program Files PHP 就 输入 E 回车 注 不 能在一打开CMD的
  • 折半查找不成功的平均查找长度怎么算_算法基础:常用的查找算法知识笔记

    1 查找表和查找效率的概念查找表是指由同一类型的数据元素构成的集合 分为静态查找表和动态查找表 1 1 静态查找表1 查询某个特定元素是否在查找表的集合当中2 查询某个特定元素的各种属性 1 2 动态查找表1 在查找表中插入一个数据元素2
  • 如何在命令行中使用 ftp 命令上传和下载文件

    转摘 https linux cn article 6746 1 html 本文中 介绍在 Linux shell 中如何使用 ftp 命令 包括如何连接 FTP 服务器 上传或下载文件以及创建文件夹 尽管现在有许多不错的 FTP 桌面应用
  • 音视频同步-时间戳

    媒体内容在播放时 最令人头痛的就是音视频不同步 从技术上来说 解决音视频同步问题的最佳方案就是时间戳 首先选择一个参考时钟 要求参考时钟上的时间是线性递增的 生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳 一般包括开始时间和结束时
  • vuejs+element UI table的常见的属性及事件

    一 table组件的方法 事件 查看官网 二 常用的事件 属性 一 属性 1 多选框 type selection 需要实现勾选的功能 在
  • BearPi-HM Micro 开发环境搭建

    1 资料下载 Ubuntu20 04 大小8G 下载地址 百度云 Ubuntu18 04 大小4 8G 下载地址 百度云 STM32CubeProgrammer JRE 虚拟机VMware Workstation MobaXterm工具 R
  • 华大(小华)HC32L130工程创建

    一 我们先来认识一下华大驱动库包下的文件功能 注意 华大提供的包是没有M0 内核标准文件的 HC32L130 是M0 ST提供的驱动库包是有的 就是CORE文件夹 第一步 创建文件夹目录 具体这个创建文件夹目录的含义可以看STM32工程创建