|
楼主
查看: 6628回复: 1
发表于 2019-7-8 09:47:01
只看该作者
在官方例程中,关于串口的发送和接收是如下这样子写的:
- // Echo back RXed character, confirm TX buffer is ready first
- #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
- #pragma vector=USCI_A0_VECTOR
- __interrupt void USCI_A0_ISR(void)
- #elif defined(__GNUC__)
- void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)
- #else
- #error Compiler not supported!
- #endif
- {
- switch(__even_in_range(UCA0IV,4))
- {
- case 0:break; // Vector 0 - no interrupt
- case 2: // Vector 2 - RXIFG
- while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
- UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
- break;
- case 4:break; // Vector 4 - TXIFG
- default: break;
- }
- }
复制代码
也就是说在串口中断中收到之后就发送出去,但是怎么才能在主函数中进行发送呢?
我封装了一个如下的函数:
- void send_byte(unsigned char x)
- {
- while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
- UCA0TXBUF = x;
- }
- void send_str(unsigned char *s)
- {
- while(*s != '\0')
- send_byte(*s++);
- }
复制代码
但是并不能在主函数中进行串口的发送。请大佬指教 |
|