MSPM0开发学习笔记:GPIO
根据以下步骤进行示例文件的Import 图中的driverlib即是我们需要使用到的例程文件,可以看到这里面有许多gpio相关的例程文件,点进去之后里面是有四个文件夹,我们不需要点开任何一个,直接选择文件夹就好,这里我们用到的是gpio_software_poll软件轮询 导入之后即是README文件的界面,可以先阅读一下,重点是Example Summary部分与Example Usage部分。 ---
MSPM0开发学习笔记
第一章 初步安装与配置
第二章 GPIO
一、Import示例文件
根据以下步骤进行示例文件的Import



图中的driverlib即是我们需要使用到的例程文件,可以看到这里面有许多gpio相关的例程文件,点进去之后里面是有四个文件夹,我们不需要点开任何一个,直接选择文件夹就好,这里我们用到的是gpio_software_poll软件轮询

导入之后即是README文件的界面,可以先阅读一下,重点是Example Summary部分与Example Usage部分。
二、syscfg配置
syscfg是图形化的配置工具,用起来还是十分方便的,我们可以现在这边进行配置,之后在进入代码的编写部分。
1、GPIO_LED

黄色的部分更多是固定的系统配置,我们不需要去修改,这边我们着重看GPIO部分的配置。

上面的GPIO_LEDS和GPIO_BUTTONS是代表两个大组,方便我们进行分类,里面我们可以添加一条一条的小的配置,比如说下面的这个USER_LED_1
现在来看一下几个参数
| 参数 | 作用与配置 |
|---|---|
| Name | 名字 |
| Direction | 方向,这边设置为输出 |
| Initial Value | 初始值 反正都是要设置的,这边无所谓 |
| Assigned Port | 分布到A组还是B组 |
| Assigned Port Segment | 不用管自动设置 |
| Assigned Pin | A组/B组中的哪一号(这边变成了PA0) |
为什么是PA0呢,现在我们再看一下README文件,因为我们是例程,所以按着例程来设置学习

我们再来看下原理图

原来是用PA0来控制这个LED灯,现在明白了
2、GPIO_SWITCH

相同的地方就不赘述了,但是要注意看黄色的地方 为什么要选择Pull-up的上拉电阻,为什么README里面也要特地强调这个上拉电阻

我们来看其原理图

按下时候读取低电平,但是松开时是不确定的浮空状态,应该内部对齐进行上拉,所以需要设置上拉电阻。
设置完之后进行编译即可
三、程序设计
具体代码如下:
#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
/* LED on by default */
while (1) {
if (!DL_GPIO_readPins(GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_1_PIN))
{
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
else {
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
}
}
利用While进入循环
利用DL_GPIO_readPins函数进行读取按钮的状态并取反(未取反的话是按下低电平,松开高电平),这个函数需要传入两个参数,具体的参数名称我们可以在Debug/ti_msp_dl_config.h文件里面查找并直接复制,第一个参数是指定A组还是B组,后一个参数是具体的多少对应的参数名称

接着利用DL_GPIO_setPins进行设置引脚高电平,或是利用DL_GPIO_clearPins进行清楚恢复低电平。
四、补充
DL_GPIO_readPins返回的并不是0和1布尔值什么的,而是一个2进制数,比如如果将这边的返回值改为2进制查看的话是0010 0000 0000 0000 0000 0000 是在从右往左数的第21位为1 刚好我们查询的也是第21位。
MSPM0開發學習筆記:GPIO
根據以下步驟進行示例文件的Import 圖中的driverlib即是我們需要使用到的例程文件,可以看到這裡面有許多gpio相關的例程文件,點進去之後裡面是有四個文件夾,我們不需要點開任何一個,直接選擇文件夾就好,這裡我們用到的是gpio_software_poll軟件輪詢 導入之後即是README文件的界面,可以先閱讀一下,重點是Example Summary部分與Example Usage部分。 ---
來源:https://blog.csdn.net/2403_87969572/article/details/148102093
抓取時間(ISO本地):2026-05-18 05:17:04
MSPM0開發學習筆記
第一章 初步安裝與配置
第二章 GPIO
文章目錄
一、Import示例文件
根據以下步驟進行示例文件的Import



圖中的driverlib即是我們需要使用到的例程文件,可以看到這裡面有許多gpio相關的例程文件,點進去之後裡面是有四個文件夾,我們不需要點開任何一個,直接選擇文件夾就好,這裡我們用到的是gpio_software_poll軟件輪詢

導入之後即是README文件的界面,可以先閱讀一下,重點是Example Summary部分與Example Usage部分。
二、syscfg配置
syscfg是圖形化的配置工具,用起來還是十分方便的,我們可以現在這邊進行配置,之後在進入代碼的編寫部分。
1、GPIO_LED

黃色的部分更多是固定的系統配置,我們不需要去修改,這邊我們著重看GPIO部分的配置。

上面的GPIO_LEDS和GPIO_BUTTONS是代表兩個大組,方便我們進行分類,裡面我們可以添加一條一條的小的配置,比如說下面的這個USER_LED_1
現在來看一下幾個參數
| 參數 | 作用與配置 |
|---|---|
| Name | 名字 |
| Direction | 方向,這邊設置為輸出 |
| Initial Value | 初始值 反正都是要設置的,這邊無所謂 |
| Assigned Port | 分佈到A組還是B組 |
| Assigned Port Segment | 不用管自動設置 |
| Assigned Pin | A組/B組中的哪一號(這邊變成了PA0) |
為什麼是PA0呢,現在我們再看一下README文件,因為我們是例程,所以按著例程來設置學習

我們再來看下原理圖

原來是用PA0來控制這個LED燈,現在明白了
2、GPIO_SWITCH

相同的地方就不贅述了,但是要注意看黃色的地方 為什麼要選擇Pull-up的上拉電阻,為什麼README裡面也要特地強調這個上拉電阻

我們來看其原理圖

按下時候讀取低電平,但是鬆開時是不確定的浮空狀態,應該內部對齊進行上拉,所以需要設置上拉電阻。
設置完之後進行編譯即可
三、程序設計
具體代碼如下:
#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
/* LED on by default */
while (1) {
if (!DL_GPIO_readPins(GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_1_PIN))
{
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
else {
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
}
}
利用While進入循環
利用DL_GPIO_readPins函數進行讀取按鈕的狀態並取反(未取反的話是按下低電平,鬆開高電平),這個函數需要傳入兩個參數,具體的參數名稱我們可以在Debug/ti_msp_dl_config.h文件裡面查找並直接複製,第一個參數是指定A組還是B組,後一個參數是具體的多少對應的參數名稱

接著利用DL_GPIO_setPins進行設置引腳高電平,或是利用DL_GPIO_clearPins進行清楚恢復低電平。
四、補充
DL_GPIO_readPins返回的並不是0和1布爾值什麼的,而是一個2進制數,比如如果將這邊的返回值改為2進制查看的話是0010 0000 0000 0000 0000 0000 是在從右往左數的第21位為1 剛好我們查詢的也是第21位。
MSPM0 Dev Notes: GPIO
Follow the wizard: Pick driverlib examples—use gpio_software_poll (select the folder, don’t drill in). Read README Example Summary and Example Usage. ---
Captured at (local ISO): 2026-05-18 05:17:04
MSPM0 Dev Notes
Chapter 1 Install and setup
Chapter 2 GPIO
I. Import example project
Follow the wizard:



Pick driverlib examples—use gpio_software_poll (select the folder, don’t drill in).

Read README Example Summary and Example Usage.
II. SysConfig
Graphical setup before coding.
1. GPIO_LED

Yellow blocks are system defaults—focus on GPIO.

Groups GPIO_LEDS / GPIO_BUTTONS; entry USER_LED_1:
| Parameter | Meaning |
|---|---|
| Name | Symbol name |
| Direction | Output here |
| Initial Value | Any (we set in code) |
| Assigned Port | Port A or B |
| Assigned Port Segment | Auto |
| Assigned Pin | Pin index → PA0 |
README + schematic show PA0 drives the LED:


2. GPIO_SWITCH

Enable pull-up—README stresses it:

Schematic: pressed = low; released would float without pull-up.

Build after config.
III. Application code
#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
/* LED on by default */
while (1) {
if (!DL_GPIO_readPins(GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_1_PIN))
{
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
else {
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
}
}
Loop reads switch (inverted logic), setPins / clearPins for LED. Pin macros live in Debug/ti_msp_dl_config.h.

IV. Notes
DL_GPIO_readPins returns a bitmask, not 0/1—e.g. bit 21 set when reading pin 21.