Thread 中讨论的其他器件:ENERGYTRACE
工具与软件:
嗨、大家好、
#include
volatile unsigned int receivedData = 0;
int main (void){
//将所有未使用的引脚配置为输出、并将其设置为低电平
P1DIR = 0xFF;P1OUT = 0x00;
P2DIR = 0xFF;P2OUT = 0x00;
P3DIR = 0xFF;P3OUT = 0x00;
P4DIR = 0xFF;P4OUT = 0x00;
P5DIR = 0xFF;P5OUT = 0x00;
P6DIR = 0xFF;P6OUT = 0x00;
PADIR = 0xFF;PAOUT = 0x00;
PBDIR = 0xFF;PBOUT = 0x00;
PCDIR = 0xFF;PCOUT = 0x00;
WDTCTL = WDTPW | WDTHOLD;
PM5CTL0 &=~μ H LOCKLPM5;
CSCTL0_H = 0xA5;//解锁 CS 寄存器
CSCTL4 = SELA_1;
CSCTL0_H = 0x00;
P2SEL1 &=~(BIT6 | BIT5);//清除 P2SEL1中的位6和位5以将其设置为0
P2SEL0 |=(BIT6 | BIT5);//将 P2SEL0中的位6和位5设置为1
P1DIR |=位1;
P1SEL1 |=位1;
P1SEL0 &=~BIT1;
UCA1CTLW0 = UCSWRST;//将 eUSCI_A1置于复位状态
UCA1CTLW0 |= UCSSEL__ACLK;//选择 SMCLK 作为时钟源
//配置波特率
UCA1BRW = 1;// N 的整数部分
UCA1MCTLW =(0x25 << 8)|(11 << 4)| 1;
//将 eUSCI_A0从复位状态释放
UCA1CTLW0 &=~μ s UCSWRST;
UCA1IE |= UCRXIE;
TA0CCR0 = 32 - 1;
TA0CCR1 = 0;
TA0CCTL1 = OUTMOD_7;
TA0CTL = TASSEL__ACLK | MC__UP | TACLR;
__bis_SR_register (LPM3_bits |GIE);//进入 LPM3并启用全局中断
}
__attribute_((interrupt (USCI_A1_vector)))
void USCI_A1_ISR (void){
如果(UCA1IFG & UCRXIFG){//检查 RX 中断标志是否被置1
receivedData = UCA1RXBUF;
TA0CCR1 = receivedData;
}
}
这是我编写的用于使用 UART 控制 PWM 的代码。 当我检查电流时、 在 lpm3模式下、MSP430在没有任何负载的情况下消耗的2.055mA 是如此。 我想知道这是否是最低功耗。