2、开发环境搭建:ModusToolbox安装与配置、SDK与驱动库导入、第一个LED闪烁工程

好,咱们正式开始动手了。

这一章,我带你把开发环境搭起来。说白了,就是给电脑装上“脑子”,让它能听懂英飞凌的芯片说话。很多初学者卡在这一步,装到一半报错,或者装完了找不到库,心态直接崩了。别急,我踩过的坑,你一个都不用再踩。

2.1 ModusToolbox 的安装与配置

ModusToolbox 是英飞凌主推的 IDE,基于 Eclipse 魔改而来。我个人习惯叫它 MTB,听起来顺口。

第一步:下载安装包

去英飞凌官网搜 ModusToolbox,找到对应你操作系统的版本。Windows 用户就下 .exe,Linux 用户下 .run 包。我建议你下载离线安装包,大概 2GB 左右。在线安装包容易断,你想想看,下到一半断了多闹心。

第二步:安装过程

双击运行,一路 Next 就行。但这里有个坑——安装路径不要有中文,也不要有空格。我曾经有个学员,装在了“D:\程序\ModusToolbox”,结果编译死活报错,找了半天发现是路径里的中文搞的鬼。

安装完成后,桌面上会出现三个图标:

  • ModusToolbox:主 IDE,写代码用的
  • Project Creator:创建新项目的工具
  • Library Manager:管理 SDK 和驱动库

嗯,这三个工具你都会用到。尤其是 Library Manager,后面导入库全靠它。

小技巧: 安装完成后,建议先重启一次电脑。别问我为什么,Windows 有时候就是欠重启。

2.2 SDK 与驱动库的导入

装好 IDE 只是第一步。你想想看,光有编辑器没有芯片的驱动库,就像你买了把螺丝刀但没有螺丝头,啥也干不了。

打开 Library Manager

双击桌面上的 Library Manager 图标。第一次打开它会自动检测你的网络,然后弹出一个窗口让你选择工作空间。我建议你专门建一个文件夹,比如 D:\MTB_Workspace,把所有项目都放这里,方便管理。

导入 BSP(板级支持包)

在 Library Manager 界面,点击 BSPs 标签页。这里列出了英飞凌所有官方开发板的支持包。如果你用的是 CY8CKIT-062S2-43012 这款板子(我课程里用的就是这个),直接搜 062S2,找到后点击 Install。

下载大概需要几分钟,取决于你的网速。我记得有一次在客户现场,网速慢得像蜗牛,等了半小时才下完。所以,我建议你提前把常用 BSP 下载好,存到本地。

导入驱动库

切换到 Libraries 标签页。这里有很多库,比如 mtb-pdl-cat1(外设驱动库)、mtb-hal-cat1(硬件抽象层库)。

你只需要安装这两个:

  • mtb-pdl-cat1:底层寄存器操作,适合做电机控制这种对实时性要求高的场景
  • mtb-hal-cat1:封装好的 API,适合快速开发

选中它们,点击 Install。安装完成后,Library Manager 会显示绿色的对勾。

注意: 驱动库版本要匹配。如果你用的 BSP 是 v2.x,驱动库也要选 v2.x 的。混用版本会导致编译报错,我吃过这个亏。

2.3 创建第一个 LED 闪烁工程

环境搭好了,咱们来点实际的。让板子上的 LED 闪起来,这是嵌入式界的“Hello World”。

打开 Project Creator

双击桌面上的 Project Creator 图标。选择你的开发板型号,比如 CY8CKIT-062S2-43012。然后点击 Next。

选择模板

在模板列表里,找到 Empty PSoC6 App。为什么选空的?因为我想让你从零开始,自己配置引脚和时钟,这样你才能理解底层是怎么工作的。

项目名称填 LED_Blink,位置选你刚才建的工作空间。点击 Create,几秒钟后项目就建好了。

编写代码

在 ModusToolbox 里打开这个项目。找到 main.c 文件,把里面的内容全部删掉,换成下面的代码:

#include "cy_pdl.h"
#include "cyhal.h"
#include "cybsp.h"

int main(void)
{
    cy_rslt_t result;

    // 初始化板级支持包
    result = cybsp_init();
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    // 使能全局中断
    __enable_irq();

    // 获取 LED 引脚(板载用户 LED)
    cyhal_gpio_t led_pin = CYBSP_USER_LED;

    // 配置为输出
    cyhal_gpio_init(led_pin, CYHAL_GPIO_DIR_OUTPUT,
                    CYHAL_GPIO_DRIVE_STRONG, CYBSP_LED_STATE_OFF);

    for (;;)
    {
        cyhal_gpio_toggle(led_pin);  // 翻转电平
        cyhal_system_delay_ms(500);  // 延时 500ms
    }
}

代码很简单,我解释两句:

  • cybsp_init() 初始化板子,配置时钟和引脚
  • cyhal_gpio_toggle() 翻转 LED 引脚的电平
  • cyhal_system_delay_ms(500) 延时 500 毫秒

编译与下载

点击工具栏上的锤子图标(Build),编译项目。第一次编译会下载一些依赖,稍微慢一点,后面就快了。

编译通过后,用 USB 线把开发板连到电脑。点击绿色的播放按钮(Debug 或 Run),程序就会下载到板子里。

如果一切顺利,你会看到板子上的 LED 以 0.5 秒的间隔闪烁。嗯,这一刻是不是很有成就感?

避坑指南: 我曾经遇到过下载失败的情况,原因是 USB 驱动没装好。如果你也遇到类似问题,去英飞凌官网下载一个叫 KitProg3 的驱动,装上就好了。

2.4 小结

这一章我们干了三件事:装 IDE、导库、跑通第一个工程。看起来简单,但这是你后面所有电机控制算法的基础。你想想看,如果连 LED 都点不亮,那 PWM 输出、电流采样这些更复杂的操作就更别谈了。

下一章,我会带你深入 PSoC 6 的时钟系统和 GPIO 配置。到时候你会发现,LED 闪烁只是开胃菜,真正的硬菜还在后面。

课后练习: 试着把延时改成 200ms,看看 LED 闪烁频率有什么变化。再试试用两个 LED 交替闪烁,一个亮 300ms,一个亮 700ms。