2023电赛备赛-MSPM0学习笔记(三)调用SYSCONFIG以及配置GPIO输出和输入

通过在Keil中导入SDK的.cfg文件,利用SYSCONFIG工具对GPIO进行配置,包括设置输入输出、上拉电阻等。SYSCONFIG不生成工程,而是生成配置文件供工程使用。在main函数中调用初始化函数实现IO控制。

调用SYSCONFIG以及配置GPIO的输入和输出

我们打开keil,点击Tools/Customize Tools Menu

image-20230603131045158

然后点击import

image-20230603131141142

选择我们SDK目录下的.cfg文件

image-20230603131330356

再次点击Tools,可以看到SYSCONFIG工具已经出现了,这样我们就可以在当前的工程里进行快速配置了

image-20230603131447706

使用SYSCONFIG工具

不同于ST的CUBEMX,SYSCONFIG并不能生成工程,只能帮我们配置相应的外设

我们首先双击empty.syscfg(即.syscfg文件),然后再打开SYSCONFIG工具配置当前工程

image-20230603132209968

sysconfig并不会生成相应工程,对应的,它会生成四个配置文件(以GPIO配置页为例)

image-20230603133107140

根据创易栈的指导手册,可以看到用户LED接到了PA14上,用户按键接到了PA7上

配置页是这样的,我们像CUBEMX那样配置功能即可,这是LED引脚的配置,绑定好端口即可

image-20230604185642348

下面是GPIO输入的配置,点击ADD,配置输入IO

与输出不同的是,我们需要配置这个IO的一些属性,点击Digital IOMUX Features,配置上拉电阻,关闭Invert翻转逻辑

image-20230604191028000

如果想详细了解这些配置项的用途,可以点击旁边的问号,会直接弹出相应的信息,笔者就不多解释了,以后需要用到的时候再详细解释

接着我们点击FILE-save即可保存我们配置好的文件

image-20230604191703932

接着回到keil,在.empty内可以看到我们配置的信息,这时候我们先进行 编译

image-20230604191912282

这时编译器会提示我们ti_msp_dl_config.c和ti_msp_dl_config.h文件发生了更改,打开ti_msp_dl_config.c,能看到SYSCONFIG自动帮我们添加好了相应的初始化函数

image-20230604193803879

在main中添加相应的代码

int main(void)
{
    SYSCFG_DL_init();

    while (1) {
        if(DL_GPIO_readPins(GPIO_GRP_0_PORT,GPIO_GRP_0_KEY_PIN) == 0)//判断IO电平
        {
            DL_GPIO_clearPins(GPIO_GRP_0_PORT,GPIO_GRP_0_LED_PIN);//点亮LED
    
        }
        else
            DL_GPIO_setPins(GPIO_GRP_0_PORT,GPIO_GRP_0_LED_PIN);//熄灭LED
    
    }

}

实际情况如下

f0dfb073fa99a4cf8faa46b8c77b5bb

转载请标明出处

By QDU_jiongsheng

### SysConfig 工具概述 SysConfig 是一种强大的图形化工具,旨在简化嵌入式系统的配置过程。它能够帮助开发者快速完成引脚复用 (Pin Multiplexing, PinMux) 的设置、外设配置以及其他硬件资源的分配[^1]。该工具集成了 TI Code Composer Studio (CCS),也可以作为独立安装包使用,甚至可通过 dev.ti.com 提供的云端服务访问。 以下是关于如何使用 SysConfig 进行配置的一些关键技术方法: --- ### 使用 SysConfig 配置 GPIO 外设 当需要配置通用输入输出端口 (GPIO) 时,可以借助 SysConfig 自动生成所需的头文件代码。这些代码可以根据运行环境的不同(如 Flash 或 RAM),存储在相应的路径中。例如,在配置 GPIO 后,生成的头文件可能被放置在特定项目目录下的 `include` 文件夹中[^3]。 #### 示例代码片段 以下是一个简单的 C 语言代码示例,展示如何基于 SysConfig 配置后的 GPIO 设置实现基本功能: ```c #include "gpio_config.h" void init_gpio(void) { // 初始化 GPIOGPIO_setDirection(GPIOMUX_PORTA_BASE, BIT0 | BIT1, GPIO_DIR_OUTPUT); } int main() { init_gpio(); while(1) { GPIO_toggleOutput(GPIOMUX_PORTA_BASE, BIT0); // 切换 GPIO 输出状态 } } ``` --- ### 修改设备树以适配 Linux 系统 对于 BeagleBoard-X15 等支持 Linux 操作系统的平台,SysConfig 不仅能生成硬件配置文件,还可以辅助修改设备树 (Device Tree)[^4]。具体操作流程如下: 1. **生成配置文件** 在 SysConfig 中完成所需外设的配置后,导出名为 `genericFileFormatPadConf.txt` 的文件。此文件记录了当前项目的 PinMux 其他硬件参数。 2. **解析并应用到设备树** 将上述文件中的内容转换为适合设备树语法的形式,并将其插入到对应的 `.dts` 文件中。例如: ```diff diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts --- a/arch/arm/boot/dts/am57xx-beagle-x15.dts +++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts @@ -123,6 +123,9 @@ }; uart0_pins: pinmux_uart0 { + pinctrl-single,pins = < + 0x1a8 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd */ + 0x1ac (PIN_OUTPUT_PULLUP | MUX_MODE0) /* uart0_txd */ >; }; ``` --- ### SysConfig 支持的主要功能领域 除了 GPIO 设备树的支持之外,SysConfig 还广泛应用于以下几个方面: - **外设配置**: 如 UART、I2C、SPI 等通信接口的初始化。 - **无线模块管理**: 对蓝牙、Wi-Fi 等射频子系统的控制调试[^1]。 - **冲突检测与解决**: 自动识别潜在的硬件资源争用问题,并提供解决方案。 --- ### 注意事项 尽管 SysConfig 能够显著提升开发效率,但在实际使用过程中仍需注意以下几点: - 确保所使用的版本兼容目标硬件平台。 - 定期保存工作进度以防数据丢失。 - 如果涉及复杂系统设计,则建议仔细阅读官方文档或参考相关教程[^2]。 ---
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值