使用串口调试助手不能回显数据,但是能控制灯的状态
<p>使用的是MSP430F2618的芯片和MSP-TS430PM64的开发板,写了一个使串口能够控制LED灯并且对输入的数字进行回显,使用串口调试助手输入0和1能正常控制灯,就是不能接收到数字,求助求助大神啊来帮帮,搞了好几天都没解决,已经要崩溃了。</p><p>下面是代码:</p>
<p>#include <msp430.h></p>
<p>void main(void)<br />
{<br />
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器</p>
<p> // 初始化 DCO 为 1 MHz<br />
BCSCTL1 = CALBC1_1MHZ;<br />
DCOCTL = CALDCO_1MHZ;</p>
<p> // 配置 LED<br />
P1DIR |= BIT0; // 设置 P1.0 为输出模式<br />
P1OUT &= ~BIT0; // 初始化 LED 为关闭状态</p>
<p> // 配置串口<br />
P3SEL |= 0x30; // 设置 P3.4 和 P3.5 为 USCI_A0 的 TX 和 RX 引脚<br />
UCA0CTL1 |= UCSSEL_2; // 使用 SMCLK 作为时钟源<br />
UCA0BR0 = 104; // 设置波特率为 9600,SMCLK = 1 MHz<br />
UCA0BR1 = 0;<br />
UCA0MCTL = UCBRS0; // 设置调制<br />
UCA0CTL1 &= ~UCSWRST; // 初始化 USCI 状态机<br />
IFG2 &= ~UCA0RXIFG; // 清除 RX 中断标志位<br />
IE2 |= UCA0RXIE; // 启用 RX 中断</p>
<p> __delay_cycles(1000000); // 等待系统稳定(1 秒)<br />
__bis_SR_register(CPUOFF + GIE); // 进入低功耗模式,启用中断</p>
<p> while (1); // 无限循环,保持程序运行<br />
}</p>
<p>// USCI_A0 RX 中断服务例程<br />
#pragma vector=USCIAB0RX_VECTOR<br />
__interrupt void USCI0RX_ISR(void)<br />
{<br />
unsigned char receivedChar = UCA0RXBUF; // 获取接收到的字符</p>
<p> if (receivedChar == '1') {<br />
P1OUT |= BIT0; // 点亮 LED<br />
} else if (receivedChar == '0') {<br />
P1OUT &= ~BIT0; // 关闭 LED<br />
}</p>
<p> while (!(IFG2 & UCA0TXIFG)); // 等待 TX 缓冲区准备好<br />
UCA0TXBUF = receivedChar; // 回显接收到的字符<br />
}<br />
</p>
<div style="text-align: center;"></div>
<p> </p>
<p>正常往外边发送能成功吗?接收应该没问题了 </p>
<p>你写一个单片机定时串口发送数据,看看电脑串口助手能不能收到。</p>
秦天qintian0303 发表于 2024-11-28 08:26
正常往外边发送能成功吗?接收应该没问题了
<p>谢谢回答,已经解决了,可能是引脚坏了,换了一个内部寄存器的另外两个引脚做收发是没有问题的</p>
wangerxian 发表于 2024-11-28 09:16
你写一个单片机定时串口发送数据,看看电脑串口助手能不能收到。
<p>谢谢回答,已经解决了,可能是引脚坏了,换了一个内部寄存器的另外两个引脚做收发是没有问题的</p>
<div class='shownolgin' data-isdigest='no'>xxxxxpp 发表于 2024-11-28 21:11
谢谢回答,已经解决了,可能是引脚坏了,换了一个内部寄存器的另外两个引脚做收发是没有问题的
<p>确实有可能,冬天产生静电比较多,有可能电坏了。</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页:
[1]