请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC430F6137 工具/软件:Code Composer Studio
尊敬的先生、我的项目正在使用 cc430f6137 IC、我正在为 cc430x613x_uscia0_UART_04.c 编写 UART 代码、我的概念是、每当一次接收任何字符时、只使用中断传输"t"字符。 但这里仅传输接收到的数据。 使用 HC-05蓝牙和移动默认应用程序进行测试。 该蓝牙在另一个微控制器上运行良好。 我的代码有什么错误、请尽快发送。
#include int main (void) { WDTCTL = WDTPW + WDTHOLD;//停止 WDT PMAPPWD = 0x02D52;//获取对端口映射寄存器的写入访问 P1MAP5 = PM_UCA0RXD;//将 UCA0RXD 输出映射到 P1.5 P11.6 6 = PM_UCA0TXD;//将 UCA0RXD 映 射到 P1.5 P1.6;/锁定到 PPM0P0寄存器 | PM0PPDR= P0;/映射到 P0 //将 P1.6设置为 TX 输出 P1SEL |= BIT5 + BIT6;//选择 P1.5和 P1.6以实现 UART 功能 UCA0CTL1 |= UCSWRST;//**将状态机置于复位状态机** UCA0CTL1 |= UCSSEL_2;// SMCLK UCA0BR0 = 6;// UCA0BR1 = 9600用户指南(请参见) // 1MHz 9600 UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;// Modln UCBRSx=0、UCBRFx=0、 //过采样 UCA0CTL1 &=~UCSWRST;//初始化** USCI 状态机** UCA0IE |= UCRX=0;//启用中断 _ PMIC_R0;//输入 USCI_R0;//寄存器0 //对于调试 器} //回显 RXed 字符,确认 TX 缓冲区已准备就绪#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__) #pragma vector=USCI_A0_vector __interrupt void USCI_A0_ISR (void) #Elif defined (__GNC_ISR_)( void )#USCI_A0 (void)(void USCI_0_A0)(void)(void)(void)#USCI_ISR (void) #endif { switch (__even_in_range (UCA0IV、4)) ){ case 0:break;//向量0 -无中断 情况2://向量2 - RXIFG while (!(UCA0IFG&UCTXIFG)));// USCI_A0 TX 缓冲器准备就绪? UCA0TXBUF ='t'; // UCA0TXBUF = UCA0RXBUF;// TX -> RXED 字符 中断; 情况4:中断;//向量4 - TXIFG 默认值:中断; }
以及如何传输字符串。 主席先生,请你等候你的答覆。