我尝试使用 UCB0与 ADC 进行通信、同时使用 UCA0通过 UART 与 PC 进行通信、但我似乎无法从器件上的 P1.7 (SPI OUT)中获得任何结果、也无法获得发送中断。
我已经剥离了代码、因此我甚至不想设置 UART、但仍然不幸运。 我没有连接任何器件、P1.7 (数据表中的 UCB0SIMO)似乎是悬空的、没有数据输出?
//#include
#include "msp430g2553.h"
void portCfg()
{
P1SEL |= BIT7 + BIT6 + BIT4;
P1SEL2 |= BIT7 + BIT6 + BIT4;
P1DIR |= BIT4 + BIT0;
P2DIR |= BIT0;
P2OUT |= BIT0;
}
void spiInit()
{
UCB0CTL1 |= UCSWRST;
UCB0CTL1 |= 0x02;
UCB0CTL0 |= UCMSB + UCMST + UCSYNC;
UCB0BR0 |= 0x02;
UCB0BR1 = 0;
UCB0CTL1 &=~UCSWRST;
IE2 |= UCB0TXIE;
}
int main (void)
{
WDTCTL = WDTPW | WDTHOLD;
portCfg();
spiInit();
UCB0TXBUF ='U';
BIS_SR (LPM0 + GIE);
}
#pragma vector = USCIAB0TX_vector
__interrupt void TransmitInterrupt (void)
{
UCB0TXBUF ='U';
}
在我这里,有没有关于外设使用的明确指南,如设置哪些寄存器,它们做什么,针对各种功能和模式的所有不同代码? 将示例代码的几个位拼接在一起并在末尾划伤我的头似乎让我找不到位置、而该微控制器的数据表中没有列出我需要使用的所有寄存器和速记宏。