国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MSP430F5529單片機入門學習筆記1

這篇具有很好參考價值的文章主要介紹了MSP430F5529單片機入門學習筆記1。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本筆記整理自B站教程MSP430F5529單片機學習視頻匯總

基于庫函數(shù)的開發(fā)—GPIO庫函數(shù)

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

右邊部分寫錯了,看的時候注意

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

基于庫函數(shù)的開發(fā)—GPIO實踐操作

LED交替閃爍

#include <msp430.h>
/*
 * EXP-GPIO-01.C
 *
 *  Created on: 2023年3月10日
 *      Author: ASUS
 */

#include "driverlib.h"

void main(void)
{
    //關(guān)閉看門狗
    WDT_A_hold(WDT_A_BASE);

    //設(shè)置P1.0為輸出(LED1)
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);

    //設(shè)置P4.7為輸出(LED2)
    GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN7);

    //設(shè)置P1.0輸出高電平(LED1點亮)
    GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);

    //設(shè)置P4.7輸出低電平(LED2熄滅)
    GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN7);

    while(1)
    {
        //取反P4.7引腳的輸出
        GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN7);

        //取反P1.0引腳的輸出
        GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);

        //軟件延遲
        __delay_cycles(1000000);

    }
}

注意#include“driverlib.h”頭文件時要注意:

  • 添加MSP430F5xx_6xx文件夾到當前工程下

MSP430F5xx_6xx文件夾是在導入的msp430ware_3_80_13_03包中找

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
  • 把上述MSP430F5xx_6xx文件夾的路徑包含進來

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

按鍵控制LED

#include <msp430.h>
/*
 * EXP-GPIO-02.C
 *
 *  Created on: 2023年3月10日
 *      Author: ASUS
 */

#include "driverlib.h"

void main(void)
{
    //關(guān)閉看門狗
    WDT_A_hold(WDT_A_BASE);

    //設(shè)置P1.0為輸出(LED1)
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);

    //設(shè)置P4.7為輸出(LED2)
    GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN7);

    //設(shè)置P1.0輸出低電平(LED1熄滅)
    GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);

    //設(shè)置P4.7輸出低電平(LED2熄滅)
    GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN7);

    //設(shè)置P2.1為輸入,上拉(S1)
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2, GPIO_PIN1);

    //設(shè)置P1.1為輸入,上拉(S2)
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);

    while(1)
    {
        //沒有按鍵按下時,為高電平;按鍵按下時為低電平
        if((GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1)) ||
          (GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1))
              )
        {
            //軟件延時,相當于是按鍵消抖
            __delay_cycles(5000);

            if(GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1))
            {
                //等待按鍵釋放
                while(GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1));

                //改變LED1的狀態(tài),(取反P1.0引腳的輸出)
                GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
            }

            if(GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1))
            {
                //等待按鍵釋放
                while(GPIO_INPUT_PIN_LOW == GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1));

                //改變LED1的狀態(tài),(取反P4.7引腳的輸出)
                GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN7);
            }

        }
        //軟件延時
        __delay_cycles(5000);
    }

}

單個LED閃爍

#include <msp430.h>
/*
 * EXAMPLE007.C
 *
 *  Created on: 2023年3月10日
 *      Author: ASUS
 */

/**
 * main.c
 */

void main(void)
{
    unsigned i, j;

    WDTCTL = WDTPW | WDTHOLD;   //stop watchdog timer關(guān)閉看門狗

    P4DIR |= BIT7;  //p4.7方向設(shè)置為輸出

    P4OUT |= BIT7;  //p4.7輸出高電平,點亮LED

    P4OUT &= ~BIT7; //p4.7輸出低電平,熄滅LED

    while(1)
    {
        P4OUT |= BIT7;  //p4.7輸出高電平,點亮LED
        for(i = 60000; i > 0; i --)
        {
            for(j = 200; j > 0; j --)   //延時
            {
                ;
            }
        }

        P4OUT &= ~BIT7; //p4.7輸出低電平,熄滅LED
        for(i = 60000; i > 0; i --)
        {
            for(j = 200; j > 0; j --)   //延時
            {
                ;
            }
        }

    }


}

時鐘系統(tǒng)(UCS:Unified Clock System)

MSP430F5529單片機入門學習筆記1

有三個系統(tǒng)時鐘可以選擇ACLK、SMCLK、MCLK

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

VLOCLK、DCOCLK、DCOCLKDIV、REFOCLK是內(nèi)部時鐘源

VLOCLK受溫度變化影響較大;DCOCLK、DCOCLKDIV穩(wěn)定度稍微高一點;REFOCLK穩(wěn)定度更高,是經(jīng)過內(nèi)部修整之后的

上電之后MCLK、SMCLK時鐘信號默認來自DCOCLKDIV時鐘源,這是DCOCLK經(jīng)過2分頻得到的,ACLK主要來自XT1CLK

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

MCLK時鐘信號默認來自DCOCLKDIV時鐘源,這題的表述可能不是很準確

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

時鐘源如果來自LFXT1低頻晶振,當?shù)皖l晶振發(fā)生故障,不工作,系統(tǒng)會自動切換到REFOCLK(32768),場景2也同理,這是系統(tǒng)的防護機制

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

TimerA定時器基本功能

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

LED1通過定時器控制不斷閃爍

/*
 * TimerA.C
 *
 *  Created on: 2023年3月11日
 *      Author: ASUS
 */

#include <msp430.h>

int main(void)
{
    //關(guān)閉看門狗
    WDTCTL = WDTPW + WDTHOLD;

    //引腳設(shè)置為輸出
    P1DIR |= 0x01;

    //使能CCR0中斷
    TA0CCTL0 = CCIE;

    //設(shè)置計數(shù)值
    TA0CCR0 = 50000;

    //選擇時鐘源,選擇工作模式
    TA0CTL = TASSEL_2 + MC_1 + TACLR;

    //進入LPM0,開啟全局中斷
    __bis_SR_register(LPM0_bits + GIE);

    __no_operation();

}

//Timer0 A0中斷服務(wù)函數(shù)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
    //引腳P1.0的輸出取反
    P1OUT ^= 0x01;
}

TimerA工作模式和中斷

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

定時器控制紅色LED閃爍

具體要求

MSP430F5529單片機入門學習筆記1

解題思路

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

請思考,用軟件延時的方式,有利弊?文章來源地址http://www.zghlxwxcb.cn/news/detail-462254.html

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

代碼示例

MSP430F5529單片機入門學習筆記1
#include <msp430.h>
/*
 * TimerA_LED.C
 * 代碼示例1:采用溢出中斷的方式
 *  Created on: 2023年3月11日
 *      Author: ASUS
 */

int main(void)
{
    //停用看門狗
    WDTCTL = WDTPW + WDTHOLD;

    //P1.0設(shè)置為輸出
    P1DIR |= BIT0;

    //設(shè)置開始計數(shù)值;16384 / 32768 = 0.5s,65535-16384
    TA0R = 65535 - 16384;

    //選擇ACLK,連續(xù)計數(shù)模式,不要清除TAR
    TA0CTL = TASSEL__ACLK + MC_2 + TAIE;

    //開啟中斷
    _EINT();

    while(1)
    {
        __no_operation();   //調(diào)試用
    }
}

//Timer0 A1中斷服務(wù)函數(shù)
#pragma vector = TIMER0_A1_VECTOR
__interrupt void TIMER0_A1_ISR(void)
{
    switch(__even_in_range(TA0IV, 14))
    {
        case 0:     //無中斷
            break;
        case 2:     //CCR1中斷
            break;
        case 4:     //CCR2中斷
            break;
        case 6:     //CCR3中斷
            break;
        case 8:     //CCR4中斷
            break;
        case 10:    //CCR5中斷
            break;
        case 12:    //CCR6中斷
            break;
        //溢出中斷
        case 14:
            TA0R = 65535 - 16384;
            P1OUT ^= BIT0;
            break;
        default:
            break;
    }
}

MSP430F5529單片機入門學習筆記1
#include <msp430.h>
/*
 * TimerA_LED2.C
 *
 *  Created on: 2023年3月11日
 *      Author: ASUS
 */

unsigned char u8_count_10ms;

int main(void)
{
    //停用看門狗
    WDTCTL = WDTPW + WDTHOLD;

    //P1.0設(shè)置為輸出
    P1DIR |= BIT0;

    //使能CCR0中斷
    TA0CCTL0 = CCIE;

    //設(shè)置目標計數(shù)值
    TA0CCR0 = 10000;        //10ms

    //選擇SMCLK,增計數(shù)模式,清除TAR
    TA0CTL = TASSEL__SMCLK + MC_1 + TACLR;

    u8_count_10ms = 0;

    //開啟中斷
    _EINT();

    while(1)
    {
        __no_operation();
    }
}

//Timer0 A0中斷服務(wù)函數(shù)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
    u8_count_10ms ++;

    if(u8_count_10ms >= 50)
    {
        P1OUT ^= BIT0;          //P1.0的輸出取反
        u8_count_10ms = 0;

    }
}

MSP430F5529單片機入門學習筆記1
#include <msp430.h>
/*
 * TimerA_LED3.C
 *
 *  Created on: 2023年3月11日
 *      Author: ASUS
 */

int main(void)
{
    //停用看門狗
    WDTCTL = WDTPW + WDTHOLD;

    //P1.0設(shè)置為輸出
    P1DIR |= BIT0;

    //使能CCR0中斷
    TA0CCTL0 = CCIE;

    //設(shè)置目標計數(shù)值
    TA0CCR0 = 50000;                                        //500ms

    //選擇SMCLK,增計數(shù)模式,清除TAR
    TA0CTL = TASSEL__SMCLK + ID__2 + MC_1 + TACLR;          //ID__2表示2分頻
    TA0EX0 = TAIDEX_5;                                      //TAIDEX_5表示5分頻,加起來10分頻

    //開啟中斷
    _EINT();
    while(1)
    {
        __no_operation();
    }
}

//Timer0 A0中斷服務(wù)函數(shù)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)                        //每500ms進一次中斷
{
    //P1.0的輸出取反
    P1OUT ^= BIT0;
}

MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1
MSP430F5529單片機入門學習筆記1

到了這里,關(guān)于MSP430F5529單片機入門學習筆記1的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MSP430F5529學習筆記(6)——導入MSP430Ware,查看例程

    MSP430F5529學習筆記(6)——導入MSP430Ware,查看例程

    MSP430WARE下載; 目錄 在線版本 下載MSP430Ware 查看例程 導入例程? 離線版本 下載MSP430Ware ?查看例程 導入例程 MSP430Ware里面有很多例程和庫函數(shù)使用手冊,我們可以查看學習。非常重要 (1) 打開CCS——view——Resource Explorer ?之后我們會進入如下界面 (2) ?點擊MSP430——Embe

    2024年02月13日
    瀏覽(26)
  • MSP430F5529學習筆記(五)——串口|UART

    MSP430F5529學習筆記(五)——串口|UART

    ??????? 我們在使用MSP430的時候大家會發(fā)現(xiàn)插上usb線后電腦上有兩個端口標識,那么在進行串口通信時選擇哪個呢。其實如圖所示,上面的端口是用來進行串口通信的,下面的則是用來進行程序的下載,大家在使用的時候多加分辨即可。 ?????????當然熟悉單片機操作的

    2024年02月16日
    瀏覽(25)
  • 【2023電賽備賽】msp430f5529學習筆記(一)

    【2023電賽備賽】msp430f5529學習筆記(一)

    【寫在前】 本人目前是大二在讀生,第一次參加電賽,準備不充分,結(jié)果熬了四天,最后成績卻不如人意。有51和32的基礎(chǔ),然后想立一個flag系統(tǒng)的學習一下主打超低功耗的msp430f5529單片機為比賽做準備(畢竟電賽限制TI的板子)。另一方面也是給電協(xié)的后繼者留下一些參考的

    2024年02月11日
    瀏覽(33)
  • MSP430學習筆記(四)丨I2C通信(MSP430F5529驅(qū)動OLED顯示屏)

    ???筆者學習采用單片機型號為MSP430F5529,使用MSP-EXP430F5529LP開發(fā)板。 ???筆者擁有一定的STM32基礎(chǔ),在學習MSP430的過程中,最開始苦于沒有合適的OLED顯示驅(qū)動代碼,所以花了很多時間鉆研。綜合網(wǎng)上的各種代碼,筆者認為江協(xié)科技的STM32課程中提供的OLED代碼使用方便,

    2024年02月16日
    瀏覽(25)
  • 【MSP430F5529基于庫函數(shù)的學習】電賽速學及小車實戰(zhàn)

    【MSP430F5529基于庫函數(shù)的學習】電賽速學及小車實戰(zhàn)

    為電賽準備學習的MSP430筆記 提示:主要跟著這個大佬學的 一張經(jīng)常要看的圖 時鐘配置和閃爍的LED 時鐘系統(tǒng)結(jié)構(gòu) (1)5個時鐘來源 時鐘系統(tǒng)模塊具有5個時鐘來源。 ① XT1CLK:低頻/高頻振蕩器,可以使用32768Hz的手表晶振、標準晶體、諧振器或4~32MHz的外部時鐘源; ② VLOCLK:

    2024年02月12日
    瀏覽(22)
  • MSP430F5529——中斷理解

    MSP430F5529——中斷理解

    認識低功耗模式; MSP430的中斷,需要兩個部分,一部分是打開中斷,另外一部分是編寫中斷服務(wù)函數(shù) 首先我們得知道__bis_SR_register和_BIS_SR是一個玩意。查看宏定義可知 ?_BIS_SR()可傳入的參數(shù) 然后我們查看x的值,發(fā)現(xiàn)里面有八個可以傳入的值 我們這里只需要關(guān)系GIE就可以

    2024年02月16日
    瀏覽(32)
  • MSP430F5529 DriverLib 庫函數(shù)學習筆記(一)時鐘配置和閃爍LED

    MSP430F5529 DriverLib 庫函數(shù)學習筆記(一)時鐘配置和閃爍LED

    平臺:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad? Development Kit (MSP?EXP430F5529LP) (1)5個時鐘來源 ????????時鐘系統(tǒng)模塊具有5個時鐘來源。 ① XT1CLK :低頻/高頻振蕩器,可以使用32768Hz的手表晶振、標準晶體、諧振器或4~32MHz的外部時鐘源; ② VLOCLK :內(nèi)部超低功耗低頻振蕩

    2024年02月16日
    瀏覽(21)
  • 05:OLED模塊【MSP430F5529】

    05:OLED模塊【MSP430F5529】

    目錄 實物圖 字模取字 ????????字模軟件 ? ? ? ? 取模步驟 ????????1.設(shè)置軟件 ????????2.取模 ????????3.輸出數(shù)據(jù) ?代碼 type.h oledfont.h oled.h oled.c main.c 下面圖片中,可以看到OLED模塊的四個接口:GND,VCC,SCL,SDA GND VCC SCL SDA 接地 接電源3.3V/5V 接P3.5 接P3.6 ??????

    2024年02月16日
    瀏覽(28)
  • 06:PWM與電機驅(qū)動【MSP430F5529】

    電機型號: 工作方式: 原理圖以及接線: 根據(jù)官方例程,主要代碼為drive.c drive.h main.c (后面好像使用的時候會有什么沖突導致1或者2通道無法正常運行,不太記得了,可以到實物上實驗一下子) 下面是智能送藥小車使用PWM驅(qū)動電機相關(guān)代碼與注釋(在實物中,均能正常運行)

    2024年02月15日
    瀏覽(28)
  • MSP430F5529循跡小車 2022電賽 C題

    MSP430F5529循跡小車 2022電賽 C題

    編輯時間2022/8/21 選用材料:主控MSP430F5529、直流減速電機(帶光電編碼器)、TB6612電機驅(qū)動、超聲波測距、灰度傳感器、無線透傳、OLED屏顯示。 使用灰度傳感器巡線,超聲波檢測前后車距作為位置環(huán)反饋,通過位置環(huán)調(diào)節(jié)前后車距離。 :MSP430?? 循跡?? ?無線串口透

    2024年02月16日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包