MSPM0G3507的学习记录(个人记录)

目的:参加电赛,学习记录,创作者的视角来学习。

使用芯片:LP-MSPM0G3507

具备的知识:C51单片机知识,c语言知识(初学未精通)

总结:基础较弱,实力较弱,认清楚自己的实力,所以决定了自己的目的:学会这块芯片以及开发环境的使用,为后面的学习打下基础以及提高解决问题能力。

在官网上下载Launches CCStudio(开发环境),参考了视频【2024电赛】TI MSPM0快速入门课 - 开发环境部署_哔哩哔哩_bilibili

这对于我来说是一个全新的开发环境,学习的方式:看视频学习学习例程,自己学例程,修改历程,测试程序。

CCS支持gcc和ticlang编译器。导入例程。

例程1:GPIO

第一个:gpio_input_capture:输入的捕获

第二个:gpio_simultaneous_interrupts持续的中断

第三个:gpio_software_poll软件轮询

第四个:gpio_toggle_output输出的翻转

第四个:c++版本的输出翻转

第五个:gpio_toggle_output_hiz高阻态

 每一个示例都完成一个完整的功能,我需要理解如何编写这些示例,并自己编写一个类似的,掌握相关的用法。

以gpio_software_poll软件轮询为例学习。

  1. 第一步学会看README文件:对示例的简单说明,使用到的外设和引脚以及如何

例程使用到的原理图:

告诉我们如何使用:

Syscfg工具:实际上是图形可视化配置工具,在这里设置各种外设。生成相应代码。

Syscfg工具下的内容含义:(未完全)

PROJECT CONFIGURATION:

左边

Project Configuration Files:工程的设置

右边:具体的设置内容

Compiler:选择编译器,基本上使用TIClang

File Generation各种工程的配置不用太管。

Include libraries:需要包含的库

各自的含义:右边为对应的具体设置

System(9)

Board:板子

右边:勾选代表着我们需要使用Debug Enable On SWD Pins来下载和调试。

DMA:

GPIO:引脚的设置(LED灯)

右边:可以设置好几个组。在组内具体设置pin。

Name:组的名称,port:有3个选择ANY,GPIOA和GPIOB..direction:输入还是输出。Initial value:初始 值设置,有两个值set和cleared(相当于高和低),

IO Structure:设置引脚结构。其中standard为标准,standard with wake为支持唤醒,High-Speed为高速的,High- Drive为高的驱动能力,5V Tolerant Open Drain为耐压5V的开漏输出·

Assigned Port :

Assigned Port Segment:一个Port(有0到31引脚)总共32个引脚,其中0到15属于Lower,16到31属于Upper .

Assigned Pin:引脚

MATHACL:

Configuration NVM:

RTC:

SYSCTL:

SYSTICK:

WWDT:

ANALOG(6)

ADC12:

COMP:

DAC12:

GPAMP:

OPA:

VREF:

COMMUNICATIONS(6)

I2C:

I2C_SMBUS

MCAN:

SPI:

UART:

UART-LIN:

TIMERS(6)

TIMER-CAPTURE:

TIMER-COMPARE:

TIMER-PWM:

TIMER-QEI

TIMER

Timer Fault:

SECURITY(2)

AES

TRNG:

DATA INTEGRITY(1)

CRC

READ-ONLY(1)

EVENT:

项目.c文件:主函数的文件

主程序的主体大概为:

#include "ti_msp_dl_config.h"

int main(void)

{

    SYSCFG_DL_init();

    while (1) {

    }

}

在第一个例程中特别注意USER BUTTON中对上拉电阻的设置,需要内部设置

例程一的代码及其解释(个人理解)

#include "ti_msp_dl_config.h"//头文件名称,每个代码都有用到,必须有的格式。由syscfg生成
 
int main(void)
{
    SYSCFG_DL_init();//调用了syscfg的初始化
 
    /* LED on by default */
 
    while (1) //while大循环,我们一直使用的框架
        {
        if (!DL_GPIO_readPins( GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_1_PIN)) 
//在if中调用了一个函数DL_GPIO_readPins(读取参数上的电平是高还是低,最终返回0或者1,然后取反),函数的参数有两个:GPIO_SWITCHES_PORT和GPIO_SWITCHES_USER_SWITCH_1_PIN
// GPIO_SWITCHES_PORT是一个宏定义:#define GPIO_SWITCHES_PORT (GPIOB),相当于就是GPIOB.
//GPIO_SWITCHES_USER_SWITCH_1_PIN也是一个宏定义:#define GPIO_SWITCHES_USER_SWITCH_1_PIN (DL_GPIO_PIN_21),相当于DL_GPIO_PIN_21。
 
        {
            DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);//如果取反后为零了执行这条语句
 //DL_GPIO_setPins的功能:将参数置为高电平
//两个参数都是用了宏定义。参数GPIO_LEDS_PORT代表了:GPIOA,参数GPIO_LEDS_USER_LED_1_PIN代表了DL_GPIO_PIN_0
 
        } 
        
        else {
            DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);//如果取反后为1则执行该语句
            //DL_GPIO_clearPinsde 的功能:将参数置为低电平
        }
    }
}

  • 37
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值