0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机智云Gokit3开发篇 — 搭建Gokit3工程(HAL库版)

机智云 2026-01-08 19:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在当今物联网时代,越来越多的开发者希望能够快速上手并实现创新的产品与应用。机智云Gokit3开发板因其易用性和丰富功能受到初学者的青睐。该开发板核心主控采用了高性价比的STM32F103C8T6微控制器,支持多种开发环境,使学习与开发变得更加便捷。


本文将带您从零基础开始,逐步搭建Gokit3的HAL库工程,并通过简单的点灯实验,让您感受开发的乐趣。在这个过程中,我们将学习如何使用STM32的HAL库,掌握基本的开发流程,为后续更复杂的项目打下坚实的基础。

文章结尾附本文章源码、原理图资料链接。


01硬件清单


Gokit3 开发板(核心:STM32F103C8T6)

Micro USB 数据线(供电 / 下载)

ST-Link 下载器(若板子自带则无需额外,Gokit3 一般集成了 ST-Link)


软件清单

软件名称

l STM32CubeMX----可视化配置工程、生成 HAL 库代码

官网下载链:(https://www.st.com/en/development-tools/stm32cubemx.html);

安装时需下载STM32F1 系列固件包(CubeMX 内可直接下载);

l Keil MDK-ARM V5代码编译、下载调试

下载V5 版本(需兼容 F1 系列);

安装对应芯片包(STM32F1xx_DFP);

需破解(新手可自行找教程,注意选择支持F1 的许可证)。


02开始搭建工程


1、步骤1:STM32CubeMX 新建工程


介绍:STM32CubeMX 是 ST 官方的可视化配置工具,能极大简化 HAL 库工程搭建,新手不用手动配置寄存器,效率拉满


打开CubeMX,选择芯片型号

双击打开STM32CubeMX,点击主界面的 “New Project”;



37891770-ec83-11f0-8ce9-92fbcf53809c.png



在“Part Number Search” 搜索框输入 STM32F103C8T6,选中搜索结果中的芯片(注意区分 LQFP48 封装),点击 “Start Project”;



37996fe4-ec83-11f0-8ce9-92fbcf53809c.png


2、步骤 2:基础配置(时钟 / 调试接口

(1)配置调试接口(必须,否则无法下载程序)

点击左侧菜单栏“System Core” → “SYS”;

右侧“Debug” 选项选择 “Serial Wire”(SWD 模式,占用引脚少,Gokit3自带SWD烧录接口);



37ad6ee0-ec83-11f0-8ce9-92fbcf53809c.png



(2)配置时钟源和时钟树(决定系统主频)

Gokit3 的 STM32F103C8T6 外接 8MHz 晶振(HSE),我们配置系统主频为 72MHz(F103 的最大主频):


点击左侧“RCC”;

右侧“High Speed External (HSE)” 选择 “Crystal/Ceramic Resonator”(外部晶振);


37c8e10c-ec83-11f0-8ce9-92fbcf53809c.png



点击顶部菜单栏“Clock Configuration”(时钟配置);

配置时钟树:

HSE 设为 8MHz;

PLLSRC 选择 HSE;

PLLMUL 选择 x9(8*9=72MHz);

HCLK 选择 72MHz;

PCLK1 选择 36MHz(APB1 最大 36MHz);

PCLK2 选择 72MHz;


37f4261e-ec83-11f0-8ce9-92fbcf53809c.png37f4261e-ec83-11f0-8ce9-92fbcf53809c.png



3、步骤3:配置 LED 引脚(Gokit3 硬件对应)

先查 Gokit3 原理图:有4个LED 正极接PB1、PB11、PB14、PB15 引脚(高电平点亮,低电平熄灭)原理图如下:



382919f0-ec83-11f0-8ce9-92fbcf53809c.png




3846f542-ec83-11f0-8ce9-92fbcf53809c.png



配置如下:(我们以LED1为例)

点击左侧“GPIO”;

在引脚列表中找到 PB1,点击下拉菜单:

Mode 选择 “Output Push Pull”(推挽输出);

Pull-up/Pull-down 选择 “Pull down”(下拉,默认低电平,LED 灭);

Speed 选择 “Low”(低速即可,LED 无需高速);

可给 PB0 重命名(方便识别):在 “User Label” 栏输入 LED0,后续代码中可直接用这个别名。



38859f2c-ec83-11f0-8ce9-92fbcf53809c.png



STM32F103C8T6 的 GPIO 外设支持八种工作模式,可分为输入模式、输出模式、复用输出模式三大类

这里介绍GPIO的八种模式


输入浮空(GPIO_Mode_IN_FLOATING)

输入上拉(GPIO_Mode_IPU)

输入下拉(GPIO_Mode_IPD)

模拟输入(GPIO_Mode_AIN)

开漏输出(GPIO_Mode_Out_OD)

推挽输出(GPIO_Mode_Out_PP)

复用开漏输出(GPIO_Mode_AF_OD)

复用推挽输出(GPIO_Mode_AF_PP)


4、步骤4:生成工程代码

点击顶部菜单栏“Project Manager”;

配置项目基本信息:

Project Name:输入工程名(如Gokit3_LED_HAL);

Project Path:选择保存路径(这里推荐全英文路径,兼容性问题);

Toolchain/IDE:选择 “MDK-ARM”;



38adbeee-ec83-11f0-8ce9-92fbcf53809c.png



配置代码生成选项:

勾选“Generate peripheral initialization as a pair of '.c/.h' files per peripheral”(按外设生成独立的.c/.h 文件,代码更整洁);

其他默认即可;

点击右上角“GENERATE CODE”,等待代码生成完成,然后点击 “Open Project” 自动打开 Keil 工程。



38d4ddf8-ec83-11f0-8ce9-92fbcf53809c.png


03Keil 工程配置与代码编写

1、步骤 1:编写点灯代码(核心逻辑)

STM32CubeMX 生成的代码已包含 HAL 库底层驱动,我们只需在main.c中添加点灯逻辑即可:

打开Core/main.c文件,找到while(1)循环(约 95 行左右);

在while(1)中添加如下代码:

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1);

HAL_Delay(500);



38e9d58c-ec83-11f0-8ce9-92fbcf53809c.png



完整main.c关键片段参考:

@font-face{font-family:"Times New Roman";}@font-face{font-family:"宋体";}@font-face{font-family:"Calibri";}p.MsoNormal{mso-style-name:正文;mso-style-parent:"";margin:0pt;margin-bottom:.0001pt;mso-pagination:none;text-align:justify;text-justify:inter-ideograph;font-family:Calibri;mso-fareast-font-family:宋体;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;}span.msoIns{mso-style-type:export-only;mso-style-name:"";text-decoration:underline;text-underline:single;color:blue;}span.msoDel{mso-style-type:export-only;mso-style-name:"";text-decoration:line-through;color:red;}@page{mso-page-border-surround-header:no;mso-page-border-surround-footer:no;}@pageSection0{}div.Section0{page:Section0;}intmain(void){ /* 1. 初始化HAL库 */ HAL_Init(); /* 2. 配置系统时钟(CubeMX自动生成) */ SystemClock_Config(); /* 3. 初始化外设(CubeMX自动生成,包含PB0) */ MX_GPIO_Init(); /* 4. 主循环 */ while (1) {/* 点灯核心代码:LED0(PB0)翻转电平,间隔500ms闪烁 */HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1); // 翻转PB0电平(亮→灭/灭→亮)HAL_Delay(500); // 延时500ms(HAL库自带延时函数,单位ms) }}


代码解释


HAL_Init():初始化 HAL 库核心组件(如 SysTick 定时器,用于HAL_Delay);

SystemClock_Config():CubeMX 自动生成的时钟配置函数,对应我们之前设置的 72MHz 主频;

MX_GPIO_Init():初始化 GPIO(包含 PB0 的输出配置);

HAL_GPIO_TogglePin():HAL 库 GPIO 电平翻转函数,参数 1=GPIO 端口(GPIOB),参数 2 = 引脚(GPIO_PIN_0);

HAL_Delay():HAL 库毫秒级延时函数,底层基于 SysTick 定时器实现。


2、步骤 2:下载程序到 Gokit3:

不会烧录下载的可以此文章

链接:

《机智云Gokit3开发篇》1如何给Gokit3烧录程序(MCU+ST-Link版)-GoKit 开源套件-开源项目及赛事-机智云


3、步骤 3:验证效果

此时Gokit3 上的LED 1会以 500ms 为间隔循环闪烁,STM32 HAL 库工程搭建成功,点灯实例也成功跑起来。



3913b384-ec83-11f0-8ce9-92fbcf53809c.png


通过本次介绍,我们从零基础开始成功搭建了Gokit3的HAL库工程,并完成了简单的点灯实验,体验了开发的乐趣与成就感。希望这篇文章能够为您的STM32学习之旅提供帮助,并激发您在物联网开发领域的探索兴趣。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机智云
    +关注

    关注

    3

    文章

    649

    浏览量

    27819
  • Gokit
    +关注

    关注

    2

    文章

    15

    浏览量

    12983
  • HAL
    HAL
    +关注

    关注

    2

    文章

    75

    浏览量

    13733
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    机智Gokit3开发》4 RGB灯的介绍与驱动移植(HAL

    在物联网开发与STM32嵌入式应用实践中,RGB灯是实现可视化交互、状态指示的常用外设,而机智Gokit3开发板作为物联网
    的头像 发表于 01-28 19:11 5313次阅读
    《<b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>Gokit3</b><b class='flag-5'>开发</b><b class='flag-5'>篇</b>》4 RGB灯的介绍与驱动移植(<b class='flag-5'>HAL</b><b class='flag-5'>库</b>)

    GoKit3(S)】Gokit3开箱及介绍

    `Gokit3机智Gokit2后推出的第三代物联网智能硬件开发套件,它可以快速的帮助开发
    发表于 08-25 16:29

    Gokit 3试用体验】Gokit3开箱报告

    ``  2016年8月13日中午从传达室取到机智提供试用的GoKit套件,拆开后给人的第一印象是精致,连接线单独存放,亚克力盒子里是Gokit3(V)型套件。有点小遗憾,亚克力盒子可
    发表于 08-29 11:05

    Gokit3试用体验】1、开箱评测

    Gokit3机智Gokit2后推出的第三代物联网智能硬件开发套件,它可以快速的帮助开发者将
    发表于 09-26 11:10

    如何使用机智开发一款智能硬件产品

    ”...第6:【原创】【魅力Gokit3】序列之6:搭建编译环境第7:【原创】【魅力Gokit3】序列之7:LED单灯闪烁商用案例:【成
    发表于 12-26 15:56

    每周精选:Gokit3S开发攻略、低成本SOC开发(1月9日)

    /thread-4438-1-1.html从0开始玩转Gokit3 SOC(1)简介、开发环境搭建、固件烧录http://club.gizwits.com/thread-4377-1-1.html我爱分享:基于
    发表于 01-11 14:46

    GoKit3采用分体式可插拔的设计方案

    GoKit3机智推出的物联网智能硬件开发套件,采用分体式可插拔设计方案,由主控板、功能扩展板、模组三部分组成,这种设计方式,让GoKit3
    发表于 09-10 08:25

    4G模组接入机智gokit3开发

    准备内容:1.机智Gokit3开发板一块(MCU模式),机智
    发表于 10-31 19:55

    通过机智GoKit3开发套件实现手机APP的远程控制

    GoKit3(S)是机智(GizWits)推出的物联网智能硬件开发套件之一,目的是帮助传统硬件快速接入互联网。
    的头像 发表于 06-05 06:07 3834次阅读

    机智推出基于物联网智能硬件开发套件GoKit3

    GoKit3机智推出的物联网智能硬件开发套件,采用分体式可插拔设计方案,由主控板、功能扩展板、模组三部分组成,这种设计方式,让GoKit3
    的头像 发表于 08-16 09:34 5170次阅读

    gokit3是如何接入4G模组ML302-GC211转接板的

    到此教程结束,本次教程采用机智gokit3机智GC211模组实现开发板移动网络接入,方便用
    的头像 发表于 07-03 16:10 2556次阅读

    GoKit3的硬件电路原理

    很多人拿到开发板的第一件事情应该是:写入demo,看看效果。但是我觉得还是应该把别人好的设计拿过来学习,对产品的原理弄清楚了,在进行下一步会更加清晰明白,知道如何开发。现在开始学习GoKit3的硬件电路原理学习之旅吧。
    发表于 08-25 10:45 1631次阅读

    机智Gokit3测评】Gokit3硬件电路学习

    GoKit3的硬件电路原理学习之旅吧。GoKit3是什么?GoKit3机智(GizWits)推出的物联网智能硬件
    的头像 发表于 08-26 11:14 2093次阅读
    【<b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>Gokit3</b>测评】<b class='flag-5'>Gokit3</b>硬件电路学习

    机智Gokit3开发:ST-Link烧录MCU程序操作详解

    本文主要介绍如何为机智Gokit3的MCU模式进行程序烧录(ST-Link版)。由于Gokit3底板采用的是STM32芯片,针对ST的MCU,推荐使用以下两种烧录方式。首先,使用ST
    的头像 发表于 12-17 18:46 650次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>Gokit3</b><b class='flag-5'>开发</b><b class='flag-5'>篇</b>:ST-Link烧录MCU程序操作详解

    如何给Gokit3烧录程序(MCU+FlyMcu版)

    在本文中,我们将详细讲解如何为机智Gokit3MCU模式进行程序烧录,特别是针对FlyMcu版本的应用。本次烧录采用了串口方式,这是给MCU烧录程序的常用方法之一。借助FlyMcu软件,我们可以
    的头像 发表于 12-17 18:46 577次阅读
    如何给<b class='flag-5'>Gokit3</b>烧录程序(MCU+FlyMcu版)