ModusToolbox 实战入门- XMC GPIO应用篇

news2024/11/24 17:36:24

导读

ModusToolbox™ 软体:MCU 开发的利器

ModusToolbox™ 软体是一组支援 MCU 周边配置和应用的工具和发展。这些工具使您能够将我们的 MCU 整合到您现有的开发方法中。

ModusToolbox™ 软体的优点

  • 提供完整的 MCU 周边配置和应用工具
  • 可整合到现有的开发方法中
  • 使用简单方便

 
本文著点于 Infineon XMC1000/4000 系列的实战与应用讲解。以 GPIO 为范例,从 MTB 的配置到程式中的 API 呼叫使用,一步一步的讲解。

作为 MCU 开发的参考指南。读者可以按照本文中的步骤进行操作,逐步学习如何使用 ModusToolbox™ 软体进行 MCU 开发。



1. 项目开始

1.1 安装 ModusToolbox™ 软体

ModusToolbox™ 软体可在英飞凌开发人员中心 (IDC) 网站上找到:

Infineon Developer Center Launcher - Infineon Technologies

下载适合您的安装程序作业系统并根据您的系统情况运行它。

针对 ModusToolbox™ 安装与操作界面可参考大大通另一位作者的连接。

ModusToolbox 实战入门

或参考Infineon所提供的影片来进行操作

https://m.youtube.com/watch?v=31yJfFD_QrI

1.1. Launch Eclipse IDE

预设情况下,Eclipse IDE安装在以下目录

      <install_path>\ModusToolbox\ide_<version>\eclipse\

启动 Eclipse IDE
• 在 Windows 上,从“开始”功能表中选择 Eclipse IDE for ModusToolbox™ <version> 项目。
• 对于其他作业系统,执行“modustoolbox”可执行档。
• 您也可以从所有作业系统的仪表板启动Eclipse IDE。 欲了解更多信息,请参阅dashboard user guide。
 

1.2 Open Project Creator tool

在IDE Quick Panel 中点击 New Application,会启动Project Creator 工具,该工具提供了多个用于不同用途的应用程式开发套件。 可用的套件可能会随著时间的推移而变化。

所有的范例档案存在于Github上,可以直接从Infineon Github中下载相关的范列。

GitHub - Infineon/modustoolbox-software: This ReadMe contains links and information on Cypress and third-party middleware for ModusToolbox, as well as BSPs and other resources.

单击 Eclipse IDE 快速面板中的 New Application 链接。


也可以选择 File > New > ModusToolbox™ Application.

建立一个Project之前需先选择适用的BSP,如图所示,需要先选择MCU 和连接装置(如果有支援)。 当您选择显示的每个套件时,该套件的说明将显示在右侧。 根据在系统设定中,您可能会看到不同的类别,包括AIROC™ Bluebooth® BSPs、 PSoC™ 4、PSoC™ 6 、TRAVEO、Wireless Charging 和XMC。对于本示例,选择KIT_XMC14_BOOT_001来演示。


 

在Getting Started中选择 Empty XMC App。若Project Name已存在时,可在New Application Name中修改。



完成后,如果没有错误或警告,Project Creator 工具将自动关闭。 如果有仅警告,按一下关闭,应用程式将在 IDE 中开启。 


1.3. Peripheral Setting

点选Quick Panel中的Device Configuration 4.10来进行Peripheral的配置




在Device Configuration主要分成4个页面

  1. Peripheral

主要配置Analog(ADC)、Communication(CAN、USCI)、Digital(CCU4、CCU8)、System(ACMP、ERU、POSIF、PRNG、RTC、WDT)

     2. Pins

主要用于确认MCU每个Pin脚分配情况。

     3. Analog-Routing

主要用于确认ADC Pin脚分配情况,XMC1000的ADC脚位皆分于于P2.x Pin,这样避免在规画时就分配到错误的脚位。

     4. System主要配置MCU的Clock,一般来说并不会去动它。预设是使用External Oscillator,如果需要修改为Internal Oscillator的话,则需要在此页面进行修改。

在Pins的页面中,预设有4个PIN已经做为GPIO的配置使用。P4.0、P4.1、P4.2、P4.4。

中间的图示可以看出目前有那些Pins已经被使用,其中P0.11、P0.10做为Crystal pin,P1.2为USCI TX、P1.3为USCI RX

点选其中一个Pin,可以看到右边的Parameters有些参数可以调整。

Control Name

Range/Items

Description

General Pin direction

Input

Input/Output

Selection of Input or Input/Output functionality.

•        Input: Digital Input.

•        Input/Output: Digital Input/ Output.

Output

Output Mode

Push Pull, Open Drain

Initial Output Level : High, Low

Connections

Digital Input

Digital Output

That is global pins are the ones that contain the inputs/outputs of each module that are common to all slices.

The GPIO connections are available at the Ports chapter.

点选Code Preview后,可以看到在Parameters中的配置后,所产生的对应的Code的内容。

1.4. How to use it

Device Configuration配置完所产生的Code皆会在此目录底下

<Project Name >/bsps/TARGET_APP_KIT_XMC14_BOOT_001/config/GeneratedSource/

点开cycfg_pins.c,Pins的初始化的code皆列于此处。



而Infineon大部分Driver层皆有library,位于

<Workspace>/mtb_shared/mtb-xmclib-cat3/release-v4.3.0/XMCLib/inc

以GPIO setting为范例,直接参考xmc_gpio.h的内文就可以直接呼叫使用。

例如要将GPIO设为High,就可以写

XMC_GPIO_SetOutputHigh(CYBSP_DEBUG_UART_TX_PORT, CYBSP_DEBUG_UART_TX_PIN);

例如要将GPIO设为Low,就可以写

XMC_GPIO_SetOutputLow(CYBSP_DEBUG_UART_TX_PORT, CYBSP_DEBUG_UART_TX_PIN);

读取GPIO States的话,就可以写

XMC_GPIO_GetInput(CYBSP_DEBUG_UART_TX_PORT, CYBSP_DEBUG_UART_TX_PIN);

结语

ModusToolbox™ 软体是一款功能强大的 MCU 开发工具。本文提供了 ModusToolbox™ 软体的使用指南和实战案例,希望对读者有所帮助。

登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1565964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++——异常机制

目录 一&#xff0c;背景 1.1 C语言处理错误的方式 1.2 C异常概念 二&#xff0c;异常的使用 2.1 异常的简单使用 2.2 异常的匹配原则 2.3 异常抛对象 2.4 异常的重新抛出 2.5 异常安全 三&#xff0c;自定义异常体系 四&#xff0c;异常优缺点 4.1 优点 4.2 缺点 …

NOIP2014提高组D1T2:联合权值

题目链接 NOIP2014提高组D1T2&#xff1a;联合权值 题目描述 无向连通图 G G G 有 n n n 个点&#xff0c; n − 1 n-1 n−1 条边。点从 1 1 1 到 n n n 依次编号,编号为 i i i 的点的权值为 W i W_i Wi​&#xff0c;每条边的长度均为 1 1 1。图上两点 ( u , v ) (…

环保用电监测系统诞生与作用

随着全球能源危机的加剧和环境保护意识的提高&#xff0c;环保用电监测系统应运而生。这一系统以其独特的监测能力、数据分析和节能减排功能&#xff0c;在提高用电效率和促进环境可持续发展方面发挥着重要作用。本文将从环保用电监测系统的诞生背景、主要功能、作用以及在实际…

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 &#x1f4da; 前言 &#x1f4d1;摘要 &#x1f4d1;操作流程 &#x1f4da; 系统架构设计 &#x1f4da; 数据库设计 &#x1f4ac; 管理员信息属性 &#x1f4ac; 学生信息实体属性 &#x1f4ac; 宿舍安排信息实体属性 &#x1f4ac; 卫生检查信息实体属性 &…

leet hot 100-10 和为 K 的子数组

和为 K 的子数组 原题链接思路代码 原题链接 leet hot 100-10 560. 和为 K 的子数组 思路 看到连续非空数组 想到前缀和数组 首先记录前缀和 然后从前往后运算 计算当前位置的前缀和的大小 减少k个 那么这个数字在前缀和的数组中有多少 时间复杂度O(n) 空间复杂度(n) 代…

python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】

&#x1f4dd;前言&#xff1a; 这篇文章主要讲解一下python基础中的关于模块的导入&#xff1a; 1&#xff0c;模块的介绍 2&#xff0c;模块的导入方式 3&#xff0c;自定义模块 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;C语言入门基…

招聘信息分享(第一期)

今天给大家带来——测绘、地信、遥感领域的事业单位招聘信息&#xff01;这也是我自己在关注的&#xff0c;自己应聘单位大多时间已经截至&#xff0c;后期会陆续分享&#xff0c;先分享近期招聘的事业单位 文章目录 1、宁夏大学2024年人才招聘2、甘肃有色冶金职业技术学院3、…

【现代企业管理】企业组织结构和组织文化的理论与实践——以华为为例

一、前言 管理是科学和艺术的统一体&#xff0c;它是企业成长的保证。企业管理中&#xff0c;管理者面对的往往不是一个完整的系统&#xff0c;而是各种不具有整体规律性的零碎信息的总和&#xff0c;因此进行信息的整合和研究是管理的重点和关键。 组织管理作为管理的四大职…

【QingHub】QingHub Studio企业级应用作业编排

简介 QingHub作业编排中心是一个通过插件化方式&#xff0c;提供数据从采集&#xff0c;转化&#xff0c;计算&#xff0c;存储为一体的全流程数据处理方案&#xff0c;他一方面为前端应用提供数据源&#xff0c;同时也为前端应用与数据源头的通信搭建起桥梁&#xff0c;实现数…

链表之单链表

上一篇博客我们学习了线性表中的顺序表&#xff0c;这一篇博客让我们继续往下了解线性表的链表&#xff0c;链表分为好几种结构&#xff0c;活不多说&#xff0c;让我们开始学习吧&#xff01; 目录 1.链表 2.链表的结构 3.单链表的实现 1.链表 1.概念&#xff1a;它是一种物…

快速跨国传输怎么实现?

在当今全球化的商业舞台上&#xff0c;迅速且安全地跨国界传输大型文件已经成为企业运营的一个核心环节。但是&#xff0c;这一过程往往面临速度缓慢和安全隐患的问题&#xff0c;这些问题严重地影响了企业的工作效率和数据的安全性。小编将会深入探讨企业在进行跨国大文件传输…

揭秘!自定义三维模型如何在RflySim中实现仿真(三)

一.技术背景 揭秘&#xff01;自定义三维模型如何在RflySim中实现仿真&#xff08;一&#xff09; 揭秘&#xff01;自定义三维模型如何在RflySim中实现仿真&#xff08;二&#xff09; 上两篇文章我们学习了自定义三维模型如何在RflySim中实现仿真和三维场景导入RflySim的实…

ssm023实验室耗材管理系统设计与实现+jsp

实验室耗材管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对实验室耗材信息管理混乱&#xff…

阴影画图转html

深受启发 https://segmentfault.com/a/1190000014943400?utm_sourcetag-newest https://gitee.com/yun-36/shadow-drawing 通过File对象&#xff0c;读成dataURL&#xff0c;生成图片&#xff0c;挂到canvas&#xff0c;生成图片文件对应的rgba数据像素点信息&#xff0c;处理…

【机器学习】科学库使用第3篇:机器学习概述,学习目标【附代码文档】

机器学习&#xff08;科学计算库&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习&#xff08;常用科学计算库的使用&#xff09;基础定位、目标&#xff0c;机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…

centOS如何升级python

centOS下升级python版本的详细步骤 1、可利用linux自带下载工具wget下载&#xff0c;如下所示&#xff1a; 笔者安装的是最小centos系统&#xff0c;所以使用编译命令前&#xff0c;必须安装wget服务&#xff0c;读者如果安装的是界面centos系统&#xff0c;或者使用过编译工具…

搭建跨境电商电商独立站如何接入1688平台API接口|通过1688API接口采集商品通过链接搜索商品下单

接口设计|接口接入 对于mall项目中商品模块的接口设计&#xff0c;大家可以参考项目的Swagger接口文档&#xff0c;以Pms开头的接口就是商品模块对应的接口。 参数说明 通用参数说明 参数不要乱传&#xff0c;否则不管成功失败都会扣费url说明……d.cn/平台/API类型/ 平台&…

【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)

文章目录 一、前言二、场景概述三、解决方案四、在线转换工具五、技术资料 一、前言 物流调度是每个生产厂区必不可少的一个环节&#xff0c;主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节&#xff0c;其包括从集中仓库到线边仓、…

C++的字节对齐

什么是字节对齐 参考什么是字节对齐&#xff0c;为什么要对齐? 现代计算机中&#xff0c;内存空间按照字节划分&#xff0c;理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问&#xff0c;这就需要各种类型数据按照一定的规…

数据结构(六)——图的存储及基本操作

6.2 图的存储及基本操作 6.2.1 邻接矩阵法 邻接矩阵存储无向图、有向图 #define MaxVertexNum 100 //顶点数目的最大值typedef struct{char Vex[MaxVertexNum]; //顶点表int Edge[MaxVertexNum][MaxVertexNum]; //邻接矩阵&#xff0c;边表int vexnum,arcnum; //图的当前…