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位。