2019-08-05 13:58发布
dirtwillfly 发表于 2014-4-12 20:11 貌似不能同时用阿。这个mcu不是有一个USCI_A0和一个USCI_B0吗?USCI_A0可以作为UART,USCI_B0配置 ...
最多设置5个标签!
{
P4SEL |= BIT0 + BIT1; // P4.0,1 = USART1 TXD/RXD
ME2 |= URXE1 + UTXE1; // Enable USART1 T/RXD
UCTL1 |= CHAR; // 8-bit character
UTCTL1 |= SSEL0; // UCLK = ACLK
U1BR0 = 0x03; // 32k/9600 - 3.41
U1BR1 = 0x00; //
UMCTL1 = 0x4A; // Modulation
UCTL1 &= ~SWRST; // Initialize USART state machine
IE2 |= UTXIE1; // 使能USART1的接收中断
}
void Init_SPI(void)
{ P7DIR |= BIT6 + BIT1 + BIT3; // P7.6、P7.1,P7.3输出
P7SEL |= 0x0E; // SPI模式: P7.1(SIMO0)、P7.2(SOMI0)、P7.3(ULCK0)
P7DIR&=~BIT2;
UCA0CTL0 |= UCMST+UCSYNC+UCCKPL+UCCKPH+UCMSB; // 8-bit SPI Master **SWRST**
// SMCLK, 3-pin mode
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
UCA0BR0 = 0x02; // 32k/9600 - 3.41
UCA0BR1 = 0x00; //
UCA0MCTL = 0x06; // Modulation
ME2=USPIE1;
UCA0CTL1 &= ~UCSWRST; // **Initialize
IE2|= UCA0RXIE; // Enable USCI_A0 RX interrupt // 接收中断允许
_BIS_SR(GIE); // Enter LPM0, interrupts enabled
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCIA0RX_ISR (void)
{
while(!(IFG2&UCA0RXIFG));
TMP_BUF=UCA0RXBUF;
}
这么设置有问题吗
在仿真的时候一步步走没有进入到中断读取UCAORXBUF
InitUART(); // 初始化UART
_EINT();
到U1BR0 = 0x03; // 32k/9600 - 3.41
U1BR1 = 0x00; //
UMCTL1 = 0x4A; // Modulation
UCTL1 &= ~SWRST; // Initialize USART state machine
IE2 |= UTXIE1; // 使能USART1的接收中断
} IE2|=UTXE1程序就不走 出问题了
你的意思是可以还是不可以同时使用? 这个MCU是有一个USCI A0 B0 就是寄存器设置上没找到 还有SPI三线模式的时候可以如果输出没有可以不连线硬件吗 非常感谢
一周热门 更多>