大家好、我需要你们的帮助、现在我正在处理 MSP430F149项目、我的 MSP430F149将通过 UART 连接另一个器件、我要做的是、如果 MSP430F149通过 UART 发送数据时器件未连接、LCD 显示屏"请先连接器件"。 我使用计时器进行检查、如果 UART 器件在5秒内没有响应、计时器将设置一个标志、MSP430F149将退出 UART 进程并显示"请首先连接器件"、但现在、如果器件未连接、UART 进程始终挂起。 我的代码如下所示。
#pragma vector=TIMERB1_vector
_interrupt void Timer_B1 (void)
{
switch (__evo_in_range (TBIV、2))
{
案例2:
{
uaraar=1;
TBCCTL1 &=~CCIE;
中断;
}
默认值:break;
}
}
void rs232_fn (uchar 命令、uchar 长度、uchar * ptr)
{
uchar i、temp、checksum;
//5S 正在等待 UART 响应
TBCTL |= TBCLR;
TBCTL = TBSSEL_1 + ID_3 + MC_1; //clock from ACLK、and devieded by 8、32.768kHz/8=4096Hz、
TBCCTL1 = CCIE;
IE1 &=~URXIE0; //禁用 Rx 中断
while ((IFG1&UTXIFG0)==0)
{
if (uaraar)(恐怖)
中断;
}
if (uaraar)(恐怖)
{
uaraar=0;
IE1|=URXIE0;
PAGE =200;
DisplayDesk (页面); //显示"请先连接设备"
}
其他
{
(笑声)
}
}