我刚开始接触单片机,用的msp430f5529的launchpad。我现在想用PC和开发板串口连接,板子用来烤程序的那个usb接口可以达到串口连接的作用嘛,还是要短接啥的。。。不能的话是不是只能用个usb转串口?
可以直接使用,板子默认短接好了,看下原理图和板子对应一下就知道了
我使用官方的例程,用串口调试助手的时候没有反应= =
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3, interrupts enabled 这句不是嘛。。。
这个例程是UART0。。 但硬件显示的COM是UART1。。。
@qwerghf 改了一下=-= 还是不行 头好晕
@qwerghf 我用usb转串口模块使用UART0可以正常接收= = 为什么自带的UART1不行呢
- #include <msp430.h>
-
- int main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
-
- P4SEL |= BIT4+BIT5; // P4.4,5 = USCI_A1 TXD/RXD
- UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
- UCA1CTL1 |= UCSSEL_2; // SMCLK
- UCA1BR0 = 9; // 1MHz 115200 (see User's Guide)
- UCA1BR1 = 0; // 1MHz 115200
- UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
- UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
- UCA1IE |= UCRXIE; // Enable USCI_A1 RX interrupt
-
- __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
- __no_operation(); // For debugger
- }
-
- // Echo back RXed character, confirm TX buffer is ready first
- #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
- #pragma vector=USCI_A1_VECTOR
- __interrupt void USCI_A1_ISR(void)
- #elif defined(__GNUC__)
- void __attribute__ ((interrupt(USCI_A1_VECTOR))) USCI_A1_ISR (void)
- #else
- #error Compiler not supported!
- #endif
- {
- switch(__even_in_range(UCA1IV,4))
- {
- case 0:break; // Vector 0 - no interrupt
- case 2: // Vector 2 - RXIFG
- while (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready?
- UCA1TXBUF = UCA1RXBUF; // TX -> RXed character
- break;
- case 4:break; // Vector 4 - TXIFG
- default: break;
- }
- }
以上代码我拿官方程序修改,拿板子测试通过,你直接可以用
本帖最后由 qwerghf 于 2017-9-18 23:32 编辑
-
UART.zip
(2017-9-18 23:31 上传)
399.11 KB, 下载次数: 6