MSP430F2418:无法将P2.3引脚设置为高电平

时间:2019-10-16 08:00:41

标签: c++ c microcontroller gpio texas-instruments

我正在为我的项目使用MSO430F2418。我正在通过UART引脚向蓝牙模块发送Hello world消息。另外,我需要将引脚P2.3设置为高电平以重置蓝牙。不幸的是,我无法将那个穿线针设置为高电平。当我检查蓝牙的复位引脚上的电压时,电压很低。

您可以在我的代码中看到以下两行。我已经使用这些语句来设置P2.3。

P2DIR|=0x08;
P2OUT|=0x08;

我已附上图片。在那里您可以看到硬件。 enter image description here

#include <stdio.h>
#include <msp430.h>               


const char string[] = { "Hello World\r\n" };
unsigned int i;

int main(void){
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  if (CALBC1_1MHZ==0xFF)                    // If calibration constant erased
  {
    while(1);                               // do not load, trap CPU!!
  }

  DCOCTL = 0;                               // Select lowest DCOx and MODx settings
  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
  DCOCTL = CALDCO_1MHZ;
   P2DIR|=0x08;
   P2OUT|=0x08;
  P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 |= UCSSEL_3;                     // SMCLK
  UCA0BR0 = 8;                              // 1MHz 115200
  UCA0BR1 = 0;                              // 1MHz 115200
  UCA0MCTL = UCBRS2 + UCBRS1;               // Modulation UCBRSx = 5
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
 // IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
  IE2 |= UCA0TXIE;
  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
}

#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)

{
        UCA0TXBUF = string[i++]; // TX next character
       if (i == sizeof string - 1){ // TX over?
        IE2 &= ~UCA0TXIE; // Disable USCI_A0 TX interrupt
       _delay_cycles(1000000);
        i = 0;
        IE2 |= UCA0TXIE; // Enable USCI_A0 TX interrupt
       }
 }

0 个答案:

没有答案