一、文件样例查找
以GPIO软件轮询为例
下面的四个文件夹分别为不同开发环境提供支持
二、工程导入
1.点击file-点击import project
2.点击browse
3.找到对应的文件打开,选择
推荐使用ticlang,能够提供更加优化的效率 点击finish
三、工程学习
1.readme 文件 (与HTML文档内容一样,格式不同)
Example Summary工程实例的简单说明
根据在软件轮询当中读取到的数字输入 来进行 GPIO的输出
Peripherals& Pin Assignments
使用到的外设和引脚情况
使用到了PA0和PB21的引脚
SYSCTL、EVENT、DEBUGSS是系统基本外设,每个工程都会有
BoosterPacks, Board Resources & Jumper Settings
扩展板、板资源和跳线设置 主要是对跳线的说明 不需要太过关注
Device Migration Recommendations 设备迁移推荐
本工程是基于3507设计的,如果需要迁移,可以参考手册
Low-Power Recommendations低功耗推荐设置
Example Usage 样例使用
编译,加载运行样例,按下button,观察led1翻转
因此,从上面看来,最重要的是Example Summary说明样例的用处和Example Usage告诉我们怎么去使用
2.syscfg 图形化配置工具
通过这个界面,就可以进行图形化的配置,从而生成工程
3. .c文件 是main函数
4.4个文件夹的主要内容
- 1-sysconfig生成的代码
- 2-相关文件
- 3-debug 编译后生成的文件
- 4-targetconfigs
5.编译运行
点击project-build all(Ctrl+B)
6.烧录到开发板
点击run-project 等待下载
当以后添加了多个工程时,可以直接在这里选择
7.运行程序
点击continue运行程序, 点击stop 退出程序
8.字体大小更改
file-preference -general settings
四、代码讲解
1.头文件
#include "ti_msp_dl_config.h"
ti_msp_ ti msp 系列
dl_config.h 代表driverlib库,在下面的文件夹中生成
2.初始化
调用了driverlib库的初始化
SYSCFG_DL_init();
按住Ctrl ,再点击 该行代码,进入对应的函数中去
可以在.c文件中找到对应的函数
可以看到,首先初始化电源,然后是GPIO的初始化 还有sysctl 可以帮助初始化各个模块
3.while(1)循环
- 宏定义 定义了GPIOB和GPIO PIN21
由此可以看出if判断就是去读GPIO PB21上面的电平,看它的高低电平,最终返回0或1 如果是0就set pins ,如果是1 就clear pins
- 引脚配置
通过宏定义可以看出,引脚配置是通过配置工具生成的,下面的注释也说明了,不要直接进行头文件的修改,是通过配置工具生成的
/** ============ ti_msp_dl_config.h =============* Configured MSPM0 DriverLib module declarations** DO NOT EDIT - This file is generated for the MSPM0G350X* by the SysConfig tool.*/
五、sysconfig工具
1.最顶上是工程生成
![]()
- 选择编译器为TIClang
包含的库中勾选了 DriverLib 其他的没有用到就没有勾选,优化代码的体积
2. board
需要用到swd协议进行下载和调试
3.GPIO
上面的两个相当于两个组,在组内是可以有多个PIN的
可以给不同的模块分到不同的组里面,这样就会更加简洁
- Name名称的设置会影响.h的输出
- Port是组的port,不是引脚的如果选择PortA或PortB的话,就意味着只能从A或B里面设置对应引脚 选择Any 就可以选择任意引脚
- 组里的pin 设置Name名称、选择Direction输入或输出、Initial Value初始值(set或clear代表高或低)、IO Structure引脚结构(标准,支持唤醒,高速,高的驱动能力,耐压5v的开漏输出 没有要求可以选择any)
- 组里的pin Assigned Port 分组 根据对应的组别选择,Assigned Port Segment(一个组里有32个PIN,0-15属于lower,16-31属于upper,默认是any,一般不需要手动去改,当输入确定引脚时,会自动选择对应的组别)
- Digital IOMUX Features Internal Resistor(pull-up上拉 pull-down下拉)
六、新建空白工程
1.导入空白工程模版
按照上面的方法,找到空白工程并导入
2.空白工程简介
使用Driverlib库,展示了基本的空白工程只有主函数文件和它的初始化
3.配置引脚
4.提示信息
代表还处在调试状态,是否重新加载
5.函数查找
进入网页:MSPM0G1X0X_G3X0X Driver Library
在搜索栏里查找想要学习的函数
- 返回值是32位 无符号整型
- 参数有两个,一个是GPIO 端口,一个是引脚
- 功能是读取一组GPIO端口
- 读取的参数,第一个指向外设,就是端口,第二个引脚,如果有多个引脚时,用或|连接
验证 DL_GPIO_readPins()函数
将函数读取到的值赋值给val,对其返回值进行研究
#include "ti_msp_dl_config.h"
#include <cstdint>uint32_t val;
int main(void)
{SYSCFG_DL_init();while (1) {val=DL_GPIO_readPins(GPIO_BUTTON_PORT,GPIO_BUTTON_PIN_BUTTON_S2_PIN)if(!val){DL_GPIO_setPins(GPIO_LED_PORT,GPIO_LED_PIN_LED_1_PIN);}else{DL_GPIO_clearPins(GPIO_LED_PORT,GPIO_LED_PIN_LED_1_PIN);}}
}
在watch一栏新添加 点击+即可
由此看出PB21引脚是高电平,就在第21位上返回1
如果还同时读取PB20 如果PB20是高的话,就在第20位上返回1
可以更改watch的值的进制形式
![]()