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

MSP430F5529庫(kù)函數(shù)——模數(shù)轉(zhuǎn)換模塊(ADC12)軟件觸發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了MSP430F5529庫(kù)函數(shù)——模數(shù)轉(zhuǎn)換模塊(ADC12)軟件觸發(fā)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

需提前觀看:MSP430F5529庫(kù)函數(shù)學(xué)習(xí)——串口

?

目錄

代碼

ADC初始化部分

引腳復(fù)位

ADC12_A_init()

函數(shù)聲明

baseAddress

sampleHoldSignalSourceSelect

clockSourceSelec

clockSourceDivider

ADC12_A_enable()

ADC12_A_setupSamplingTimer()

ADC12_A_configureMemory()

memoryBufferControlIndex

?inputSourceSelect

positiveRefVoltageSourceSelect和negativeRefVoltageSourceSelect

endOfSequence

電壓信號(hào)讀取部分

ADC12_A_startConversion()

函數(shù)聲明

baseAddress

startingMemoryBufferIndex

conversionSequenceModeSelect

ADC12_A_isBusy()

ADC12_A_getResults()

return


我這里的代碼意思是利用P6.0口作為ADC采集,利用軟件觸發(fā)的方式進(jìn)行采集信號(hào)。每過(guò)1S采集一次ADC信號(hào)。并將ADC的值轉(zhuǎn)換為電壓值發(fā)送給上位機(jī)。

代碼

#include "driverlib.h"
#include <string.h>
#include <stdarg.h>
#include <stdio.h>

#define MCLK_IN_HZ      1000000
#define delay_us(x)     __delay_cycles((MCLK_IN_HZ/1000000*(x)))
#define delay_ms(x)     __delay_cycles((MCLK_IN_HZ/1000*(x)))

void setupADC(void);
unsigned long readADC(void);

void UART_printf(uint16_t baseAddress, const char *format,...);
void Usart1_Init();

//--------------------------------  m a i n  -----------------------------------
int main(void) 
{

    WDT_A_hold(WDT_A_BASE);
    Usart1_Init();
    setupADC();

    while(1)
    {
        delay_ms(1000);
        UART_printf(USCI_A1_BASE,"Result = %d mV\n", readADC());
    }
}
//-----------------------------  s e t u p A D C  -------------------------------
void setupADC(void){

    #define ADCpin         GPIO_PORT_P6,GPIO_PIN0

    GPIO_setAsPeripheralModuleFunctionOutputPin(ADCpin);     // 復(fù)位P6.0

    //Initialize the ADC12_A Module
    /*
     * ADC12_A模塊的基址
     * 軟件觸發(fā)
     * 使用MODOSC 5MHZ數(shù)字振蕩器作為時(shí)鐘源
     * 一分頻
     */
    ADC12_A_init(ADC12_A_BASE,ADC12_A_SAMPLEHOLDSOURCE_SC, ADC12_A_CLOCKSOURCE_ADC12OSC, ADC12_A_CLOCKDIVIDER_1);  //軟件觸發(fā),內(nèi)部振蕩器MODCLK作為時(shí)鐘

    ADC12_A_enable(ADC12_A_BASE);   //啟用ADC12_A模塊
    //設(shè)置并啟用采樣定時(shí)器脈沖,這里是使用的軟件觸發(fā)的形式,所以選擇失能
    ADC12_A_setupSamplingTimer(ADC12_A_BASE,ADC12_A_CYCLEHOLD_16_CYCLES,ADC12_A_CYCLEHOLD_16_CYCLES,ADC12_A_MULTIPLESAMPLESDISABLE);

    ADC12_A_configureMemoryParam param = {0};
    param.memoryBufferControlIndex = ADC12_A_MEMORY_0;           //將內(nèi)存緩沖配置為MEMORY_0
    param.inputSourceSelect = ADC12_A_INPUT_A0;                  //將輸入A0映射到內(nèi)存緩沖區(qū)0,因?yàn)镻6.0引腳對(duì)應(yīng)A0
    param.positiveRefVoltageSourceSelect = ADC12_A_VREFPOS_AVCC; //正電壓為AVcc
    param.negativeRefVoltageSourceSelect = ADC12_A_VREFNEG_AVSS; //負(fù)電壓為AVss
    param.endOfSequence = ADC12_A_NOTENDOFSEQUENCE;              //單通道轉(zhuǎn)換

    ADC12_A_configureMemory(ADC12_A_BASE,&param);   //
}
//-----------------------------  r e a d A D C  --------------------------------
unsigned long readADC(void){

    //開(kāi)始從MEMORY_0中進(jìn)行單通道連續(xù)轉(zhuǎn)換
    ADC12_A_startConversion(ADC12_A_BASE,ADC12_A_MEMORY_0,ADC12_A_SINGLECHANNEL);

    while(ADC12_A_isBusy(ADC12_A_BASE) == ADC12_A_BUSY){
        // 等待轉(zhuǎn)換完成
    }
    //讀取ADC轉(zhuǎn)換之后寄存器的值
    long result = ADC12_A_getResults(ADC12_A_BASE, ADC12_A_MEMORY_0);
    //將其轉(zhuǎn)化為單位為mv的電壓值
    return (3220 * result) / 4096;                     // 3320是測(cè)量的Vss

}



void UART_printf(uint16_t baseAddress, const char *format,...)
{
    uint32_t length;
    va_list args;
    uint32_t i;
    char TxBuffer[128] = {0};

    va_start(args, format);
    length = vsnprintf((char*)TxBuffer, sizeof(TxBuffer)+1, (char*)format, args);
    va_end(args);

    for(i = 0; i < length; i++)
        USCI_A_UART_transmitData(baseAddress, TxBuffer[i]);
}

//9600
void Usart1_Init()
{
    //P4.4=UCA1TXD      P4.5=UCA1RXD
    GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P4, GPIO_PIN5+GPIO_PIN4);

    USCI_A_UART_initParam param1 = {0};
    param1.selectClockSource = USCI_A_UART_CLOCKSOURCE_SMCLK;
    param1.clockPrescalar = 6;
    param1.firstModReg = 13;
    param1.secondModReg = 0;
    param1.parity = USCI_A_UART_NO_PARITY;   //無(wú)校驗(yàn)位
    param1.msborLsbFirst = USCI_A_UART_LSB_FIRST;  //低位先行
    param1.numberofStopBits = USCI_A_UART_ONE_STOP_BIT;  //1停止位
    param1.uartMode = USCI_A_UART_MODE;
    param1.overSampling = USCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION;

    if (STATUS_FAIL == USCI_A_UART_init(USCI_A1_BASE, &param1)){
       return;
    }
    //Enable UART module for operation
    USCI_A_UART_enable(USCI_A1_BASE);

    //Enable Receive Interrupt
    USCI_A_UART_clearInterrupt(USCI_A1_BASE,USCI_A_UART_RECEIVE_INTERRUPT);
    USCI_A_UART_enableInterrupt(USCI_A1_BASE,USCI_A_UART_RECEIVE_INTERRUPT);
}

ADC初始化部分

引腳復(fù)位

首先我們復(fù)位P6.0,為什么復(fù)位P6.0。因?yàn)锳DC具有12個(gè)外部采集功能的引腳,如下。msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

?

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

ADC12_A_init()

我們這里采用軟件觸發(fā)的方式進(jìn)行ADC采集。軟件觸發(fā)的意思是,需要我們?cè)趯?xiě)程序的時(shí)候,寫(xiě)入一個(gè)ADC開(kāi)始采集的程序,他才會(huì)采集電壓信號(hào)。ADC采集的時(shí)鐘源是使用MODOSC 5MHZ數(shù)字振蕩器。不進(jìn)行分頻?

ADC12_A_init(ADC12_A_BASE,ADC12_A_SAMPLEHOLDSOURCE_SC, ADC12_A_CLOCKSOURCE_ADC12OSC, ADC12_A_CLOCKDIVIDER_1);  //軟件觸發(fā),內(nèi)部振蕩器MODCLK作為時(shí)鐘

函數(shù)聲明

函數(shù)聲明如下,這里返回的是一個(gè)布爾值。如果ADC初始化成功了返回STATUS_SUCCESS(也就是1),如果ADC初始化失敗了返回0。我們沒(méi)有進(jìn)行接收他的數(shù)值,一般不需要接收,因?yàn)锳DC初始化失敗的可能性很小。

bool ADC12_A_init (uint16_t baseAddress,uint16_t sampleHoldSignalSourceSelect, uint8_t clockSourceSelect,uint16_t clockSourceDivider)

baseAddress

ADC12只有一個(gè)基地址

ADC12_A_BASE

sampleHoldSignalSourceSelect

選擇觸發(fā)信號(hào)ADC進(jìn)行電壓采集有四種觸發(fā)方式,參數(shù)如下

#define ADC12_A_SAMPLEHOLDSOURCE_SC                                (ADC12SHS_0)//軟件觸發(fā)
#define ADC12_A_SAMPLEHOLDSOURCE_1                                 (ADC12SHS_1)//定時(shí)器1觸發(fā)
#define ADC12_A_SAMPLEHOLDSOURCE_2                                 (ADC12SHS_2)//定時(shí)器2觸發(fā)
#define ADC12_A_SAMPLEHOLDSOURCE_3                                 (ADC12SHS_3)//定時(shí)器3觸發(fā)

第一種是ADC12SC觸發(fā),也就是軟件觸發(fā)。

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

二三四種是利用定時(shí)器觸發(fā)ADC采集,定時(shí)器觸發(fā)的好處是,我們不需要占用CPU,讓他自己每隔一段時(shí)間主動(dòng)觸發(fā)ADC采集。但是缺點(diǎn)是,不夠靈活,他不能做到我們想采集電壓就采集,不想采集就不采集。

至于我們想知道這個(gè)ADC12SHSx的定時(shí)器采集是哪幾個(gè)定時(shí)器,不同芯片情況不同我們需要看引腳功能數(shù)據(jù)表,按Ctrl+F搜索ADC12SHSx即可出現(xiàn)如下(注意,我這里只提供MSP430F5529的,其他型號(hào)的自己去找)。

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

clockSourceSelec

這個(gè)是選擇ADC的時(shí)鐘源,一般選擇內(nèi)部震蕩器

#define ADC12_A_CLOCKSOURCE_ADC12OSC                              (ADC12SSEL_0)//內(nèi)部振蕩器
#define ADC12_A_CLOCKSOURCE_ACLK                                  (ADC12SSEL_1)
#define ADC12_A_CLOCKSOURCE_MCLK                                  (ADC12SSEL_2)
#define ADC12_A_CLOCKSOURCE_SMCLK                                 (ADC12SSEL_3)

clockSourceDivider

選擇分頻次數(shù),一般選擇不分頻。

#define ADC12_A_CLOCKDIVIDER_1                                     (ADC12DIV_0)
#define ADC12_A_CLOCKDIVIDER_2                                     (ADC12DIV_1)
#define ADC12_A_CLOCKDIVIDER_3                                     (ADC12DIV_2)
#define ADC12_A_CLOCKDIVIDER_4                                     (ADC12DIV_3)
#define ADC12_A_CLOCKDIVIDER_5                                     (ADC12DIV_4)
#define ADC12_A_CLOCKDIVIDER_6                                     (ADC12DIV_5)
#define ADC12_A_CLOCKDIVIDER_7                                     (ADC12DIV_6)
#define ADC12_A_CLOCKDIVIDER_8                                     (ADC12DIV_7)
#define ADC12_A_CLOCKDIVIDER_12                        (ADC12DIV_2 + ADC12PDIV)
#define ADC12_A_CLOCKDIVIDER_16                        (ADC12DIV_3 + ADC12PDIV)
#define ADC12_A_CLOCKDIVIDER_20                        (ADC12DIV_4 + ADC12PDIV)
#define ADC12_A_CLOCKDIVIDER_24                        (ADC12DIV_5 + ADC12PDIV)
#define ADC12_A_CLOCKDIVIDER_28                        (ADC12DIV_6 + ADC12PDIV)
#define ADC12_A_CLOCKDIVIDER_32                        (ADC12DIV_7 + ADC12PDIV)

ADC12_A_enable()

這個(gè)是用于啟動(dòng)ADC的,只需要傳入ADC12_A_BASE就可以啟動(dòng)ADC12_A模塊了。

ADC12_A_setupSamplingTimer()

這個(gè)跟定時(shí)器觸發(fā)有關(guān),所以不講,只要記得第四個(gè)參數(shù)選擇ADC12_A_MULTIPLESAMPLESDISABLE即可。因?yàn)槲覀兪擒浖|發(fā)

ADC12_A_configureMemory()

這個(gè)需要傳入ADC的基地址和結(jié)構(gòu)體,基地址還是相同的。只講結(jié)構(gòu)體

    ADC12_A_configureMemoryParam param = {0};
    param.memoryBufferControlIndex = ADC12_A_MEMORY_0;           //將內(nèi)存緩沖配置為MEMORY_0
    param.inputSourceSelect = ADC12_A_INPUT_A0;                  //將輸入A0映射到內(nèi)存緩沖區(qū)0,因?yàn)镻6.0引腳對(duì)應(yīng)A0
    param.positiveRefVoltageSourceSelect = ADC12_A_VREFPOS_AVCC; //正電壓為AVcc
    param.negativeRefVoltageSourceSelect = ADC12_A_VREFNEG_AVSS; //負(fù)電壓為AVss
    param.endOfSequence = ADC12_A_NOTENDOFSEQUENCE;              //單通道轉(zhuǎn)換

memoryBufferControlIndex

這個(gè)是負(fù)責(zé)配置我們ADC采集之后的數(shù)值存入哪里。如果是單通道隨便選擇一個(gè)就可以了,建議選擇通道ADC12_A_MEMORY_0

#define ADC12_A_MEMORY_0                                                  (0x0)
#define ADC12_A_MEMORY_1                                                  (0x1)
#define ADC12_A_MEMORY_2                                                  (0x2)
#define ADC12_A_MEMORY_3                                                  (0x3)
#define ADC12_A_MEMORY_4                                                  (0x4)
#define ADC12_A_MEMORY_5                                                  (0x5)
#define ADC12_A_MEMORY_6                                                  (0x6)
#define ADC12_A_MEMORY_7                                                  (0x7)
#define ADC12_A_MEMORY_8                                                  (0x8)
#define ADC12_A_MEMORY_9                                                  (0x9)
#define ADC12_A_MEMORY_10                                                 (0xA)
#define ADC12_A_MEMORY_11                                                 (0xB)
#define ADC12_A_MEMORY_12                                                 (0xC)
#define ADC12_A_MEMORY_13                                                 (0xD)
#define ADC12_A_MEMORY_14                                                 (0xE)
#define ADC12_A_MEMORY_15                                                 (0xF)

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

?inputSourceSelect

這個(gè)是選擇我們采集的電壓通道口,上面說(shuō)了ADC只有12個(gè)外部信號(hào)采集口。因?yàn)槲覀兩厦鎻?fù)位的是P6.0所以這里是選擇ADC12_A_INPUT_A0。

msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件msp430f5529adc,MSP430F5529,單片機(jī),c語(yǔ)言,嵌入式硬件

?可選參數(shù)如下

#define ADC12_A_INPUT_A0                                          (ADC12INCH_0)
#define ADC12_A_INPUT_A1                                          (ADC12INCH_1)
#define ADC12_A_INPUT_A2                                          (ADC12INCH_2)
#define ADC12_A_INPUT_A3                                          (ADC12INCH_3)
#define ADC12_A_INPUT_A4                                          (ADC12INCH_4)
#define ADC12_A_INPUT_A5                                          (ADC12INCH_5)
#define ADC12_A_INPUT_A6                                          (ADC12INCH_6)
#define ADC12_A_INPUT_A7                                          (ADC12INCH_7)
#define ADC12_A_INPUT_A8                                          (ADC12INCH_8)
#define ADC12_A_INPUT_A9                                          (ADC12INCH_9)
#define ADC12_A_INPUT_TEMPSENSOR                                 (ADC12INCH_10)
#define ADC12_A_INPUT_BATTERYMONITOR                             (ADC12INCH_11)
#define ADC12_A_INPUT_A12                                        (ADC12INCH_12)
#define ADC12_A_INPUT_A13                                        (ADC12INCH_13)
#define ADC12_A_INPUT_A14                                        (ADC12INCH_14)
#define ADC12_A_INPUT_A15                                        (ADC12INCH_15)

positiveRefVoltageSourceSelect和negativeRefVoltageSourceSelect

?這兩個(gè)是選擇參考電壓的,可以是內(nèi)部電壓為參考電壓,也可以是外部的。本人只會(huì)內(nèi)部的,所以只講內(nèi)部電壓作為參考電壓。直接如下即可

    param.positiveRefVoltageSourceSelect = ADC12_A_VREFPOS_AVCC; //正電壓為AVcc,為3320mV
    param.negativeRefVoltageSourceSelect = ADC12_A_VREFNEG_AVSS; //負(fù)電壓為AVss,為0mV

endOfSequence

這個(gè)ADC采集可以是序列通道采集和單通道采集。我這里選擇的是單通道采集,序列通道采集。序列通道采集就是很多個(gè)通道一起采集信號(hào)。我這里只講單通道采集

#define ADC12_A_NOTENDOFSEQUENCE                                  (!(ADC12EOS))//單通道采集
#define ADC12_A_ENDOFSEQUENCE                                        (ADC12EOS)//多通道采集

電壓信號(hào)讀取部分

ADC12_A_startConversion()

這里是開(kāi)啟ADC采集的。

函數(shù)聲明

void ADC12_A_startConversion (uint16_t baseAddress, uint16_t startingMemoryBufferIndex, uint8_t conversionSequenceModeSelect)

baseAddress

同上

startingMemoryBufferIndex

設(shè)置需要開(kāi)始轉(zhuǎn)換的信號(hào)。因?yàn)槲覀冎皩DC采集的信號(hào)存入MEMORY_0,所以這里選擇ADC12_A_MEMORY_0??蛇x參數(shù)如下

#define ADC12_A_MEMORY_0                                                  (0x0)
#define ADC12_A_MEMORY_1                                                  (0x1)
#define ADC12_A_MEMORY_2                                                  (0x2)
#define ADC12_A_MEMORY_3                                                  (0x3)
#define ADC12_A_MEMORY_4                                                  (0x4)
#define ADC12_A_MEMORY_5                                                  (0x5)
#define ADC12_A_MEMORY_6                                                  (0x6)
#define ADC12_A_MEMORY_7                                                  (0x7)
#define ADC12_A_MEMORY_8                                                  (0x8)
#define ADC12_A_MEMORY_9                                                  (0x9)
#define ADC12_A_MEMORY_10                                                 (0xA)
#define ADC12_A_MEMORY_11                                                 (0xB)
#define ADC12_A_MEMORY_12                                                 (0xC)
#define ADC12_A_MEMORY_13                                                 (0xD)
#define ADC12_A_MEMORY_14                                                 (0xE)
#define ADC12_A_MEMORY_15                                                 (0xF)

conversionSequenceModeSelect

這個(gè)是選擇ADC開(kāi)啟的模式。有四種模式,如下。

說(shuō)白了就是一個(gè)多通道和單通道,多通道可以多個(gè)通道一起進(jìn)行ADC電壓信號(hào)采集,比如P6.0和P6.1同時(shí)進(jìn)行ADC電壓采集,而單通道只有一個(gè)引腳進(jìn)行ADC電壓信號(hào)采集。

然后單次采樣和多次采樣的區(qū)別是,如果我們選擇的單次采樣,那么每次進(jìn)行ADC采樣都需要一次觸發(fā)。但是如果是多次采樣,那么我們只需要一次觸發(fā),那么他就會(huì)持續(xù)采樣轉(zhuǎn)換,如果此次電壓轉(zhuǎn)換之后的信號(hào)不馬上讀取,會(huì)被下一次轉(zhuǎn)換之后的信號(hào)覆蓋。因?yàn)槲覀冞@里選擇的軟件觸發(fā),我們我個(gè)人建議選擇單次采樣,這樣我們的電壓采樣轉(zhuǎn)換的信號(hào)就不會(huì)被覆蓋,同時(shí)可以降低功耗。

#define ADC12_A_SINGLECHANNEL                               (ADC12CONSEQ_0)//單通道單次采樣
#define ADC12_A_SEQOFCHANNELS                               (ADC12CONSEQ_1)//多通道單次采樣
#define ADC12_A_REPEATED_SINGLECHANNEL                      (ADC12CONSEQ_2)//單通道循環(huán)采樣
#define ADC12_A_REPEATED_SEQOFCHANNELS                      (ADC12CONSEQ_3)//多通道循環(huán)采樣

ADC12_A_isBusy()

我們電壓信號(hào)采集之后,需要給他一個(gè)時(shí)間等待將電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)(01這種)。當(dāng)還在轉(zhuǎn)換過(guò)程的時(shí)候,他會(huì)返回ADC12_A_BUSY。所以我們需要持續(xù)調(diào)用這個(gè)函數(shù),等待轉(zhuǎn)換結(jié)束。

ADC12_A_getResults()

獲取當(dāng)前ADC采樣之后的值,因?yàn)槲覀兩厦孢x擇是將轉(zhuǎn)換信號(hào)存入MEMORY_0,所以這里選擇ADC12_A_MEMORY_0。

return

我們最后需要返回一個(gè)值。因?yàn)槲覀兩厦孢x擇的參考電壓為AVcc和AVss。所以電壓范圍為0-3320mV。因?yàn)槲覀冞@個(gè)ADC是一個(gè)12位的,所以寄存器中的存儲(chǔ)最大值是。當(dāng)采集到的電壓為0V時(shí)候,寄存器為0。當(dāng)采集到電壓為3320mV的時(shí)候,寄存器的值為4095。所以我們返回值為,至于為什么是4096,因?yàn)槲覀兪菑?開(kāi)始計(jì)算。

串口配置

注意,這部分我就提醒一下。我們是需要進(jìn)行浮點(diǎn)數(shù)據(jù)打印的,所以我們看MSP430F5529庫(kù)函數(shù)學(xué)習(xí)——串口的時(shí)候,需要按照浮點(diǎn)數(shù)據(jù)打印這一部分配置!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-604290.html

到了這里,關(guān)于MSP430F5529庫(kù)函數(shù)——模數(shù)轉(zhuǎn)換模塊(ADC12)軟件觸發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • MSP430F5529庫(kù)函數(shù)定時(shí)器A——硬件PWM

    MSP430F5529庫(kù)函數(shù)定時(shí)器A——硬件PWM

    需提前學(xué)習(xí):MSP430F5529庫(kù)函數(shù)定時(shí)器A——定時(shí)中斷;引腳手冊(cè)獲??; 目錄 先上代碼 詳解 引腳復(fù)用 選擇引腳 獲取引腳手冊(cè) 看手冊(cè)? 時(shí)鐘選擇 分頻 周期 REGISTER選擇 比較輸出模式 模式類型 ?增計(jì)數(shù)模式下的比較輸出 連續(xù)計(jì)數(shù)模式下的比較輸出 增減計(jì)數(shù)模式下的比較輸出 占

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

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

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

    2024年02月12日
    瀏覽(22)
  • MSP430F5529 DriverLib 庫(kù)函數(shù)學(xué)習(xí)筆記(一)時(shí)鐘配置和閃爍LED

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

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

    2024年02月16日
    瀏覽(21)
  • MSP430F5529 DriverLib 庫(kù)函數(shù)I2C驅(qū)動(dòng)OLED屏幕

    MSP430F5529 DriverLib 庫(kù)函數(shù)I2C驅(qū)動(dòng)OLED屏幕

    平臺(tái):Code Composer Studio 10.4.0 MSP430F5529 LaunchPad? Development Kit (MSP?EXP430F5529LP) P3.0為SDA,P3.1為SCL OLED.c OLED.h OLED_Font.h

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

    MSP430F5529——中斷理解

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

    2024年02月16日
    瀏覽(32)
  • MSP430F5529學(xué)習(xí)筆記

    該MCU是由德州儀器TI生產(chǎn)的16位低功耗單片機(jī) 主要分以下型號(hào): 專注低功耗的 1xx 通用型,配備1KB-60KB FLASH、512B-10KB RAM,工作時(shí)耗電僅達(dá)200uA/MIPS,RAM保持模式耗電0.1uA,RTC模式耗電0.7uA;可在6us之內(nèi)快速喚醒。搭載10/12位斜率SAR ADC,集成模擬比較器、DMA、硬件乘法器、BOR、SV

    2024年02月15日
    瀏覽(28)
  • msp430f5529學(xué)習(xí)筆記(2)時(shí)鐘系統(tǒng)

    msp430f5529學(xué)習(xí)筆記(2)時(shí)鐘系統(tǒng)

    寫(xiě)在前~本章將會(huì)詳細(xì)的講解msp430f5529單片機(jī)的時(shí)鐘系統(tǒng)及其使用方法。如有不妥的地方歡迎各位大佬斧正!??! 目錄 什么是時(shí)鐘系統(tǒng)和時(shí)鐘源 MSP430f5529時(shí)鐘源和時(shí)鐘系統(tǒng)介紹 產(chǎn)生時(shí)鐘信號(hào)的時(shí)鐘源: 時(shí)鐘配置 ? ? ? ?在單片機(jī)中,單片機(jī)每開(kāi)始一個(gè)周期的工作就需要一個(gè)節(jié)

    2024年02月17日
    瀏覽(21)
  • MSP430F5529學(xué)習(xí)筆記(6)——導(dǎo)入MSP430Ware,查看例程

    MSP430F5529學(xué)習(xí)筆記(6)——導(dǎo)入MSP430Ware,查看例程

    MSP430WARE下載; 目錄 在線版本 下載MSP430Ware 查看例程 導(dǎo)入例程? 離線版本 下載MSP430Ware ?查看例程 導(dǎo)入例程 MSP430Ware里面有很多例程和庫(kù)函數(shù)使用手冊(cè),我們可以查看學(xué)習(xí)。非常重要 (1) 打開(kāi)CCS——view——Resource Explorer ?之后我們會(huì)進(jìn)入如下界面 (2) ?點(diǎn)擊MSP430——Embe

    2024年02月13日
    瀏覽(26)
  • 06:PWM與電機(jī)驅(qū)動(dòng)【MSP430F5529】

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

    2024年02月15日
    瀏覽(28)
  • MSP430F5529學(xué)習(xí)筆記(五)——串口|UART

    MSP430F5529學(xué)習(xí)筆記(五)——串口|UART

    ??????? 我們?cè)谑褂肕SP430的時(shí)候大家會(huì)發(fā)現(xiàn)插上usb線后電腦上有兩個(gè)端口標(biāo)識(shí),那么在進(jìn)行串口通信時(shí)選擇哪個(gè)呢。其實(shí)如圖所示,上面的端口是用來(lái)進(jìn)行串口通信的,下面的則是用來(lái)進(jìn)行程序的下載,大家在使用的時(shí)候多加分辨即可。 ?????????當(dāng)然熟悉單片機(jī)操作的

    2024年02月16日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包