主题中讨论的其他器件: MSP430F5329
工具/软件:Code Composer Studio
尊敬的先生/我、
我有两个 TI 控制器、一个是 MSP430f5529、另一个是 MSP430f5329。
我设置 UART 中断通信协议、以实现相互通信(全双工通信)。
现在、5529代码部分还具有带有中断的计时器设置
问题是我的计时器在后台运行、而在 while 部分、我会在特定条件下向其他 msp5329发送一些数据。
当我的程序到达发送部分 UART 时、它会自动进入 UART 中断部分。 然后返回到发送函数
因为定时器的中断和 UART 的中断不同、所以我不知道如何解决这个奇怪的问题。
这是我的 MSP430F5529代码。
void main()
{
Timer();
uartInit();
__enable_interrupt ();
while (1)
{//
特定条件
send_uart ("abcdef");
}
void Timer()
{
TA0CCTL0=CCIE; // CCR0中断使能
TA0CCR0 = 1850;
TA0CTL = tassel_2 + MC_1 + TACLR;
}
////////////////////////////// 定时器中断部分//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
#pragma vector=TIMER0_A0_Vector
__interrupt void TIMER0_A0_ISR (void)
#Elif defined (__GNU__)
void __attribute__((interrupt (TIMER1_ISR_A0
) TIMER1 vector (void)#ifor_A0!#defineer1)#defineer1!
#endif
{
count++;
P2OUT |= 0x07;
P1OUT |= 0xf8;
AllCondition();
_bis_SR_register_ON_EXIT (GIE);
}
void uartInit()
{
P4SEL |=(BIT4+BIT4);
P4DIR |= BIT6; //发送数据时钟
P4REN |= BIT6;
P4OUT &=~ BIT6;
UCA1CTL1|=UCSWRST;
UCA1CTL1|=UCSSEL_2;
UCA1BR0=9;
UCA1BR1 = 0;
UCA1CTL1 &=~UCSWRST;
UCA1IE |=UCRXIE;
//_ bis_SR_register (GIE);
__NO_OPERATION();
}
void SEND_UART (char *addr)
{ P4OUT|=BIT6;
unsigned int i;
unsigned int size =strlen (addr);
for (i=0;i