主题中讨论的其他器件:MSP-FET
我一直在尝试运行基本示例 UART 代码来回显接收到的字符。 但是、每当我在 CCS 中打开终端并尝试键入字符时、都不会发生任何情况。 我已经尝试过很多次、包括关闭/关闭所有内容以及重新启动、使用 PuTTY 以及查看其他帖子、但我无法解决此问题。 提前非常感谢您的帮助、我非常感谢您的任何建议。
我正在使用:
Windows 10上的 Code Composer Studio 9.0.1
开发板上的跳线设置为内部 Vcc 和 JTAG
在设备管理器下、我有:
MSP 应用 UART1 (COM5)
MSP 调试接口(COM6)
我打开的终端具有以下设置:
我运行的示例代码为:
/*-版权所有-、BSD_EX *版权所有(c) 2012、德州仪器(TI)公司 *保留所有权利。 * * 只要 符合以下条件*、允许以源代码和二进制形式重新分发和使用: * *源代码的重新分发必须保留上述版权 声明*、此条件列表和以下免责声明。 * ***二进制形式的再发行必须在 *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。 * ***未经 事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。 * *本软件由版权所有者和贡献者"按原样"提供 *、 不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或 *贡献者都不对任何直接、间接、偶然、特殊、 *模范、 或相应的损害(包括但不限于 *采购替代产品或服务;丧失使用、数据或利润; *或业务中断)、但出于任何责任理论 、*无论是在合同中、严格责任还是由于 使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他) 、*即使已获悉可能会发生此类损坏。 * *** * * MSP430代码示例免责声明 * * MSP430代码示例是自包含的低级程序 ,通常*以 高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认 值*寄存器值和时钟配置等设置、 并且在组合多个示例中的代码时必须*小心以避免潜在的副作用 *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware *了解外设配置的 API 函数库方法。 * *--/版权--* //********* // MSP430F22x4演示- USCI_A0、9600 UART 回波 ISR、DCO SMCLK // 说明:回波接收到的字符、使用的 RX ISR。 正常模式为 LPM0。 // USCI_A0 RX 中断触发 TX 回波。 //波特率分频器、1MHz = 1MHz/9600 =~104.2 // ACLK = n/a、MCLK = SMCLK = CALxxx_1MHz = 1MHz // MSP430F22x4 // -------- // /|\| XIN|- // || | // -|RST XOUT|- // | | // | P3.4/UCA0TXD|--- >// | | 9600 - 8N1 // | P3.5/UCA0RXD|<--- // // A. Dannenberg // Texas Instruments Inc. // 2006年4月 //使用 CCE 生成版本:3.2.0和 IAR Embedded Workbench 版本:3.41A //********* #include int main (void) { WDTCTL = WDTPW + WDTHOLD; //如果 (CALBC1_1MHz=0xFF)则停止 WDT//如果校准常数被擦除 { while (1); //不加载,陷阱 CPU!! } DCOCTL = 0; //选择最低 DCOx 和 MODx 设置 BCSCTL1 = CALBC1_1MHZ; //设置 DCO DCOCTL = CALDCO_1MHz; P3SEL = 0x30; // P3.4、5 = USCI_A0 TXD/RXD UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 104; // 1MHz 9600 UCA0BR1 = 0; // 1MHz 9600 UCA0MCTL = UCBRS0; //调制 UCBRSx = 1 UCA0CTL1 &=~UCSWRST; //**初始化 USCI 状态机**IE2|= UCA0RXIE; //启用 USCI_A0 RX 中断 __bis_SR_register (LPM0_bits + GIE); //输入 LPM0、启用中断 } //回显 RXed 字符,确认 TX 缓冲区已准备就绪#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__) #pragma vector=USCIAB0RX_vector __interrupt void USCI0RX_ISR (supporteded)#elif_ICUSCIAR_ICRx_ (void)(void)(void = USCI0RX_error )_ vector (void)(void = USCI0RX_vector (void)(void = USCI0RX_isr)(vector)(void = USCIC #endif { while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX 缓冲器就绪? UCA0TXBUF = UCA0RXBUF; // TX -> RXed 字符 }