This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【TI 测评】从两段点亮msp432的LED的程序说起

第一个程序:

/*******************************************************************************
 * MSP432 GPIO - Toggle Output High/Low
 *
 * Description: In this very simple example, the LED on P1.0 is configured as
 * an output using DriverLib's GPIO APIs. An infinite loop is then started
 * which will continuously toggle the GPIO and effectively blink the LED.
 *
 *                MSP432P401
 *             ------------------
 *         /|\|                  |
 *          | |                  |
 *          --|RST         P1.0  |---> P1.0 LED
 *            |                  |
 *            |                  |
 *            |                  |
 *            |                  |
 *
 * Author: Timothy Logan
 ******************************************************************************/
/* DriverLib Includes */
#include "driverlib.h"

/* Standard Includes */
#include <stdint.h>

#include <stdbool.h>

int main(void)
{
    volatile uint32_t ii;

    /* Halting the Watchdog */
    MAP_WDT_A_holdTimer();

    /* Configuring P1.0 as output */
    MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);

    while (1)
    {
        /* Delay Loop */
        for(ii=0;ii<5000;ii++)
        {
        }

        MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
    }
}

第二个程序:

//***************************************************************************************
//  Blink the LED Demo - Software Toggle P1.0
//
//  Description; Toggle P1.0 inside of a software loop.
//  ACLK = n/a, MCLK = SMCLK = default DCO
//
//                MSP432P4xx
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |             P1.0|-->LED
//
//  E. Chen
//  Texas Instruments, Inc
//  March 2015
//  Built with Code Composer Studio v6
//***************************************************************************************

#include <ti/devices/msp432p4xx/driverlib/driverlib.h>

int main(void)
{
    volatile uint32_t i;

    // Stop watchdog timer
    WDT_A_hold(WDT_A_BASE);

    // Set P1.0 to output direction
    GPIO_setAsOutputPin(
        GPIO_PORT_P1,
        GPIO_PIN0
        );

    while(1)
    {
        // Toggle P1.0 output
        GPIO_toggleOutputOnPin(
            GPIO_PORT_P1,
			GPIO_PIN0
			);

        // Delay
        for(i=100000; i>0; i--);
    }
}

  • 看起来,两段程序似乎并没有什么不同。除了引用的头文件不一样,还有就是第二段程序使用的函数名称少了“MAP_”。(本帖不讨论固化在rom里的库函数问题)

    是的。这两段程序,点亮led的逻辑完全一致,他们的最大不同就是使用平台(或者说库)不同。第一段程序是基于msp432的driverlib,第二段程序是基于SimpleLink MSP432P4 SDK。这一点,可以从工程包含的头文件进行简单了解。

    第一段程序包含的头文件:

    第二段程序包含的头文件:

    那么,在实际使用中,这两种方式有什么不同?哪种方式更容易上手,更方便快速开发呢?

  • 这里就要说说msp432的driverlib和SimpleLink MSP432P4 SDK的特性。

    msp432的driverlib:

     In addition
    to being able to control the MSP432 peripherals, DriverLib also gives the user the ability to use
    common ARM peripherals such as the Interrupt (NVIC) and Memory Protection Unit (MPU) as well
    as MSP430 peripherals such as the eUSCI Serial peripherals and Watchdog Timer (WDT).

    在驱动库的手册里,对msp432的驱动库做了如上描述。也就是说msp432的driverlib使用起来和msp430的驱动库一样。msp432和msp430的驱动库有相似的api函数名和类似的使用方法。对于用惯了msp430的用户来说,使用msp432会非常方便。

    SimpleLink MSP432P4 SDK:

    SimpleLink是ti近几年新推出的一个平台。

    提供最广泛的有线和无线 Arm® MCU(片上系统)产品系列,通过这一个环境即可为物联网和汽车应用提供灵活的硬件、软件和工具选项。

    意思就是ti整个SimpleLink系列,包含蓝牙、zigbee、wifi等都统一在了一起。用官网的一个图最能说明这个问题:

    SimpleLink统一了有线和无线平台,代码100%可移植性,完整物联网应用的安全性,还有终极的低功耗性能。

    SimpleLink还提供了丰富的SDK plug-ins,还有可选的OS,和中间件,并包含了driverlib。driverlib是SimpleLink中的一部分。

    总之:

    1、如果是从msp430转到msp432的人员,和新入门的网友,可以先使用driverlib,然后慢慢熟悉SimpleLink。

    2、如果有一定基础,建议尽早开始熟悉SimpleLink。SimpleLink是未来的趋势,是在不同物联网连接方式间快速切换的利器。

  • 写的很好,编程过程写的很明白,能详尽的把原理表达清楚。这篇文章有一定的难度,需要作者熟悉软硬件和应用层,水平很厉害,有详细的代码解释和注意事项,对于新手来说很有参考意义,推荐!!!
  • 写的不错,程序代码结构很清晰明白,能把原理详细的表达清楚。这个对刚入门的初学者很有帮助意义。水平不一般,赞一个,投一票。

  • 写的很好 很适合新手入门 不愧是灰哥
  • 可以用更复杂的例子解释说明下
  • 都开始用库函数了 寄存器时代要过去了
  • 这篇文章写的很不错,通过2个点亮LED灯的程序讲解了基于msp432的driverlib和基于simplekinkmsp432p4 sdk开发的不同之处,给了初学者开发的学习方向,具有很好的指导意义!
  • 后期会有的。
    现在的开发,已经到了平台化的阶段。最早是寄存器开发,然后是库函数,现在是平台化。
    对底层的封装会越来越高级,使用会越来越方便。
    之前都是说学习某某单片机,某某控制器,以后不会这样说了,以后会说学习某某平台。
  • 文章虽然短小但很精炼,对于MSP-EXP432P401R的初次使用者来说还是有着一定的指导意义。通过阅读学习,了解并知悉了msp432的“driverlib”和“SimpleLink MSP432P4 SDK”的特性及差别,也准备入门MSP432进行学习,看来先从“driverlib”着手吧。建议作者再分享一些类似具有指导意义的文章。谢谢!
  • 后续会有的。等忙完这一阵,最近手里事情有些多。