谢谢你的回答
我今天试了,一下串口中断传输方式,发现也收不到数据,
void main(void)
{
PCR = CLKDIV_2; // ICLK = SYSCLK / 2
GCR = ZPLL_CLK_DIV_PRE_1; // SYSCLK = 8 x fOSC
PCR |= PENABLE; // Enable peripherals
SCI1CTL3 &= ~SW_NRESET; // Reset SCI state machine
SCI1CCR = TIMING_MODE_ASYNC + CHAR_8; // Async, 8-bit Char
SCI1CTL1 |= RXENA; // RX enabled
SCI1CTL2 |= TXENA; // TX enabled
SCI1CTL3 |= CLOCK + RX_ACTION_ENA; // Internal clock. RX interrrupt
SCI1LBAUD = 0xbf; // 29.4912MHz/(8*19200)-1
SCI1PC2 |= RX_FUNC; // SCIRX is the SCI receive pin
SCI1PC3 |= TX_FUNC; // SCITX is the SCI transmit pin
SCI1CTL3 |= SW_NRESET; // Configure SCI1 state machine
REQMASK = (1 << CIM_SCI1RX); // Enable SCI1RX channel
__enable_interrupt(); // Enable interrupts
for (;;){} // Wait in enless loop
}
//------------------------------------------------------------------------------
// TMS470R1B1M Standard Interrupt Handler
//------------------------------------------------------------------------------
#pragma vector = IRQV
__irq __arm void irq_handler(void)
{
switch ((0xff & IRQIVEC) - 1)
{
case CIM_SCI1RX :
SCI1TXBUF = SCI1RXBUF;
break;
}
}
|