MSP430F5529 Drivelib库函数 学习笔记(一)GPIO LED点灯 按键控制软件延时消抖 MCLK SMCLK ACLK时钟频率

软件平台:Code Composer Studio CCS12.4.0.00007

Driverlib版本:MSP430Ware_3_80_14_01

硬件开发板:MSP430F5529 LaunchPad™ Development Kit   (MSP‑EXP430F5529LP)

 

学习MSP430F5529 Drivelib库函数 GPIO模块使用

1.实现LED点灯 亮灭,

2. 按键控制LED亮灭, 软件延时消抖

3. GPIO 引脚复用,输出MCLK SMCLK ACLK时钟频率

时钟频率需要用示波器查看,MCLK为1.05MHz, SMCLK 为1.05MHz,ACLK为32.768kHz


#include "driverlib.h"


int main(void)
{
      WDT_A_hold(WDT_A_BASE);//关闭看门狗

    /* 第一步,设置GPIO方向,输出或者输入
     * GPIO引脚为输出,调用函数GPIO_setAsOutputPin()
     * GPIO引脚为输入,使能上下拉电阻功能
     * 设置上拉电阻,调用函数GPIO_setAsInputPinWithPullUpResistor()
     * 设置下拉电阻,调用函数GPIO_setAsInputPinWithPullDownResistor()
     * 如果使用按键,软件延时调用函数GPIO_getInputPinValue()获取GPIO端口状态
     * 中断消抖,需设置中断入口函数
     * 或者根据需要调用函数GPIO_setAsInputPin()
     *
     * 说明:上拉电阻和下拉电阻的作用是解决CMOS工艺问题产生引脚悬空的问题,
     * 上拉电阻与GPIO输入模式对应,可确保GPIO状态无输入信号时高电平,同时可以提高驱动能力
     * 下拉电阻与GPIO输模式对应,可确保GPIO状态无输入信号时是低电平
     * 具体可以CSDN或者百度更多内容
     */
    GPIO_setAsOutputPin( GPIO_PORT_P1 , GPIO_PIN0 );//开发板LED1连接了P1.0
    GPIO_setAsOutputPin( GPIO_PORT_P4 , GPIO_PIN7 );//开发板LED2连接了P4.7

    GPIO_setAsInputPin( GPIO_PORT_P2 , GPIO_PIN1);  //按键S1连接了P2.1
    GPIO_setAsInputPin( GPIO_PORT_P1 , GPIO_PIN1);  //按键S2连接了P1.1

    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2 , GPIO_PIN1);
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1 , GPIO_PIN1);

    /* 第二步,输出引脚可以设置高电平、低电平、取反,调用函数 GPIO_setOutputHighOnPin(),
     * GPIO_setOutputLowOnPin(), GPIO_toggleOutputOnPin(),
     * 输入引脚可以调用函数GPIO_getInputPinValue()读取GPIO引脚状态
     */

    GPIO_setOutputHighOnPin( GPIO_PORT_P1 , GPIO_PIN0 );//LED1点亮
    GPIO_setOutputLowOnPin( GPIO_PORT_P4 , GPIO_PIN7 );//LED2熄灭

    /* GPIO引脚复用函数,若想将芯片内部信号对外输出或外部信号读取到芯片内部
     * 可调用GPIO_setAsPeripheralModuleFunctionInputPin()、GPIO_setAsPeripheralModuleFunctionOutputPin();
     * 例如,初接触5529,系统时钟频率是需要明确,可复用引脚输出查看频率,再如定时器PWM输出、串口引脚定义等
    */
    //数据手册P9引脚图可知,P1.0对应ACLK,P2.2对应SMCLK,P7.7对应MCLK
    //因为LanchPad开发板P1.0已连接到LED1,此处不设置对外输出ACLK
    GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2 , GPIO_PIN2);
    GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P7 , GPIO_PIN7);

    while(1)
    {
        //按键控制,软件延时消抖,按键未按下时是GPIO是高电平,按下是低电平
        if( GPIO_getInputPinValue(GPIO_PORT_P2 , GPIO_PIN1) == GPIO_INPUT_PIN_LOW
         || GPIO_getInputPinValue(GPIO_PORT_P1 , GPIO_PIN1) == GPIO_INPUT_PIN_LOW )
        {
            __delay_cycles(10000);//延时消抖,10000约为10ms,MCLK是1.05MHz,1us左右
            if( GPIO_getInputPinValue(GPIO_PORT_P2 , GPIO_PIN1) == GPIO_INPUT_PIN_LOW )
            {
               GPIO_toggleOutputOnPin( GPIO_PORT_P1 , GPIO_PIN0 );//按键S1控制LED1亮灭

               //等待按键松开
               while(GPIO_getInputPinValue(GPIO_PORT_P2 , GPIO_PIN1) == GPIO_INPUT_PIN_LOW);
            }
         }

        GPIO_toggleOutputOnPin( GPIO_PORT_P4 , GPIO_PIN7 );//取反,LED2亮灭
        __delay_cycles(50000);//MCLK是1.05MHz

    }

}

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很高兴听到您正在学习msp430f5529 driverlib库函数。这个库函数是用于MSP430F5529微控制器的,它提供了许多方便的函数来帮助您编写代码。以下是一些学习笔记: 1. 首先,您需要了解MSP430F5529微控制器的基本知识,例如它的架构、寄存器、时钟等等。这将有助于您更好地理解库函数的使用。 2. 接下来,您可以查看driverlib库函数的文档,以了解每个函数的功能、参数和返回值。这将有助于您选择正确的函数来完成您的任务。 3. 在使用库函数之前,您需要包含相应的头文件。例如,如果您要使用GPIO函数,则需要包含gpio.h头文件。 4. 您可以使用Code Composer Studio等IDE来编写代码,并使用driverlib库函数来完成您的任务。在编写代码时,您可以使用库函数的示例代码作为参考。 5. 最后,您可以使用调试器来调试您的代码,并查看库函数的执行情况。这将有助于您更好地理解库函数的使用。 希望这些笔记对您有所帮助,祝您学习愉快! ### 回答2: MSP430F5529是德州仪器公司推出的一款低功耗微控制器。为了便于开发者控制芯片的各个模块,德州仪器提供了一套库函数集合——driverlib,让开发者更加轻松地进行开发工作。 在学习driverlib库函数时,开发者首先需要了解其所包含的功能模块。其中包括时钟、看门狗、ADC、UART、SPI、I2C、DMA等模块。接下来,开发者可以根据需要,按照一定的操作流程,调用对应的库函数实现所需功能。 以ADC模块为例,开发者可以通过以下步骤进行配置和使用: 1.配置ADCMCTLx寄存器:设置参考电压、采样时钟源和输入通道等参数。 2.配置ADC14CTL0寄存器:设置转换模式、采样序列长度、启用/禁用中断等参数。 3.配置ADC14CTL1寄存器:使能ADC、设置转换时钟源等参数。 4.配置ADC14INCHx寄存器:选择输入通道。 5.调用ADC14_enableConversion()函数使能转换。 6.等待转换完成并调用ADC14_getResult()函数获取结果。 通过以上步骤,开发者可以轻松地实现MSP430F5529的ADC模块读取功能。 除此之外,driverlib库函数还提供了丰富的例程和注释,使得开发者能够更好地理解每个函数的作用和用法。 总之,学习driverlib库函数MSP430F5529开发工作的必要之一。只有深入了解库函数的功能和使用方法,开发者才能更高效地完成开发工作,并为产品的性能提升和功耗优化做出贡献。 ### 回答3: 1.概述 MSP430F5529是TI公司推出的一款微控制器。MSP430F5529内置了16位CPU、16位寄存器、12位ADC、双DAC、多种时钟、计数器、UART、SPI、I2C、USB等多种外设。为了方便开发,TI公司提供了driverlib库函数。本篇笔记主要介绍MSP430F5529driverlib库函数的使用方法。 2.使用方法 2.1 前置工作 在使用driverlib库函数之前,需要先安装MSP430F5529 LaunchPad开发板和MSP430F5529 microcontroller的相关软件和驱动程序。安装完成后,需要使用Code Composer Studio等IDE来编写工程并使用driverlib库函数。 2.2 库函数调用 函数库文件libdriver.a是包含所有driverlib库函数的库文件,在代码中需要添加链接该库。在Code Composer Studio中的Project属性中添加对libdriver.a的链接即可。 使用driverlib库函数的方法如下: #include <msp430.h> #include <driverlib.h> 初始化时钟: // Set the DCO to 16MHz CS_setDCOFrequency(16000000); 启用ADC: // Enable the ADC ADC14_enableModule(); 设置ADC采样和转换: // Set the ADC conversion clock and sample time ADC14_initModule(ADC_CLOCKSOURCE_SMCLK, ADC_PREDIVIDER_1, ADC_DIVIDER_1, ADC_NOROUTE); 设置ADC输入通道: // Configure channel A0 for analog input ADC14_configureSingleSampleMode(ADC_MEM0, true); ADC14_configureConversionMemory(ADC_MEM0, ADC_VREFPOS_AVCC_VREFNEG_VSS, ADC_INPUT_A0, false); 启用ADC采样完成中断: // Enable ADC interrupt ADC14_enableInterrupt(ADC_MEM0); // Enable ADC interrupt in NVIC NVIC_EnableIRQ(ADC14_IRQn); 启动ADC采样: // Start sampling ADC14_enableConversion(); ADC14_toggleConversionTrigger(); 3.总结 通过上述代码,我们可以看出,在使用driverlib库函数时,只需使用简单的函数调用即可完成大部分工作,极大地提高了工程的开发效率。同时,driverlib库函数提供了丰富的功能,包括ADC、DAC、UART、SPI、I2C、GPIO等多种外设的驱动,大大简化了开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值