主席先生,我还需要一个帮助。 我已将 msp430fr2422套件与 CP210x USB 连接到 UART 转换器。 但我无法通过 cp210转换器传输和接收数据。
硬代码附件下面。 请纠正此问题。
WDTCTL = WDTPW | WDTHOLD;
P2DIR = BIT3;
P2OUT &=~BIT3;
PM5CTL0 &=~LOCKLPM5;
UARTA0_PortPinSelection ();
TimerA0_Configuration ();
UARTA0_Configuration ();
时间戳= LocalTime;
PrintfTimeStamp = LocalTime;
while (1)
{
TIMERA0_CLR;
_bis_SR_register (LPM0_bits | GIE);
if (LocalTime -时间戳>= 2000)
{ int i;
TerminalValue[0]= TvsVoltage;
TerminalValue[1]= TvsCurrent;
// printf_USART2 ("串行");
for (i =0;i<2;i++)
SendthSequenceofbyte (TerminalValue[i]);
时间戳= LocalTime;
}
_delay_cycles (500);
}
}
空 UARTA0_PortPinSelection (空)
{
P2SEL1 &=~BIT0;
P2SEL0 |= BIT0;
P2SEL1 &=~ BIT1;
P2SEL0 |= BIT1;
}
空 UARTA0_Configuration (空)
{
//配置 UART
UCA0CTLW0 |= UCSWRST; //将 eUSCI 置于复位状态
UCA0CTLW0 |= UCSSEL_ACLK;
//波特率计算
UCA0BR0 = 3; // 32768/9600 = 3.4
UCA0MCTLW = 0x9200; // 1000000/115200 - INT (1000000/115200)=0.68
// UCBRSx 值= 0xD6 (请参阅 UG)
UCA0BR1=0;
UCA0CTLW0 &=~UCSWRST; //初始化 eUSCI
UCA0IE |= UCRXIE; //启用 USCI_A0 RX 中断
UCA0IFG &=~ UCRXIFG;
// UCA0STATW |= UCLISTEN; //回路
}
空 TimerA0_Configuration (空)
{
TA0CCTL0 |= CCIE; //启用 TACCR0中断
TA0CCR0 = 1000;
TA0CTL = tassel_SMCLK | MC__UP | TACLR; // SMCLK、UP 模式
}
void SendthenceSequenceofbyte (字符数据速率)
{
UCA0TXBUF =(数据传输&(短整型无符号整型) 0x01FF);
while (!(UCA0IFG & UCTXIFG));
}
#pragma vector = TIMER0_A0_vector
_interrupt void Timer_A (void)
{
localtime++;
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);
}
#pragma vector=EUSCI_A0_Vector
_interrupt void EUSCI_A0_ISR (void)
{
静态 int 计数;
UCA0IFG &=~ UCRXIFG; //清除中断
数据=(UCA0RXBUF &(短整型无符号整型) 0x01FF);
P2OUT ^= BIT3;
if (flag ==0)
{
TempDta =(char)数据;
flag = 1;
}
if (flag ==1)
{
if (计数< 6)
{
RXTemp[count]= TempDta;
count++;
flag =0;
}
}
if (计数>=6)
{
计数= 0;
flag=0;
}
//__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits);
}