Joy的薯条不蘸酱 2023-12-24 13:22 采纳率: 50%
浏览 15
已结题

STC89C52RC下载程序时一上电就被之前程序占用RXD和TXD无法下载连接

我在用STC-ISP向STC89C52RC单片机下载程序时一上电就被之前程序占用RXD和TXD,电脑无法和单片机连接成功,导致下载失败。

我之前烧过一个带有串口通信的程序,占用了单片机的TXD和RXD口,当我想下载新的程序时,一上电单片机就开始运行程序占用串口通信,导致无法下载新的程序,怎么办?

Ps:我使用了KST-51这块开发板。

程序一直提示这个

img

开发板与电脑连线是这样的(我占用串口的程序是用ESP8266与单片机通信,要使用TXD和RXD)

img

这是我要占用串口的代码(也许有用

//串口中断服务
void UART_Routine(void) interrupt 4
{
    unsigned char receivedChar;
    if (RI) // 如果接收中断标志位被置位
    {
        RI = 0; // 清除接收中断标志位
        receivedChar = SBUF; // 从串行缓冲寄存器SBUF中读取接收到的字符
        if (esp8266_cnt < MAX_BUFFER) // 如果缓冲区未满
        {
            esp8266_buf[esp8266_cnt++] = receivedChar; // 将接收到的字符放入缓冲区
        }
         else if (esp8266_buf[0]=='+' && esp8266_buf[5]=='S')
        {
            Flag = 1; // 根据接收到的特定字符序列设置标志位
            esp8266_cnt = 0;
        }
        else
        {
            esp8266_cnt = 0; // 如果缓冲区已满,重置缓冲区计数器
        }
    }
}

  • 写回答

19条回答 默认 最新

  • 呈两面包夹芝士 2023-12-24 13:39
    关注

    引自讯飞星火
    您好,当您尝试使用STC-ISP向STC89C52RC单片机下载程序时,如果一上电单片机就运行之前的程序并占用RXD和TXD口,导致电脑与单片机无法连接成功,下载失败,您可以采取以下措施:

    1. 重启单片机:在上电后,首先让单片机执行一段短暂的空操作或延时程序,确保RXD和TXD口在这段时间内是空闲的。这样,您可以在此期间将STC-ISP与单片机连接,并开始下载程序。

    2. 检查串口通信代码:由于您之前烧录了一个带有串口通信的程序,该程序可能使用了RXD和TXD口。请确保在该程序中,RXD和TXD口在不需要进行串口通信时是被释放的。例如,在发送完数据后,应该将TXD置为高阻态或输出低电平。同样,接收数据时应确保RXD是悬空的或处于高阻态。

    3. 使用其他串口:如果您的开发板上有其他可用的串口,您可以考虑更改程序中的串口设置,以便使用其他未被占用的串口。

    4. 硬件复位:如果上述方法都不奏效,您可以尝试使用硬件复位按钮或其他方法来复位单片机,然后立即开始下载程序。但请注意,频繁地进行硬件复位可能会对单片机造成损害。

    5. 检查开发板与电脑的连接:确保USB串口与电脑正确连接,GND对应GND,VCC接5V,TXD和RXD不要反接。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 赞助了问题酬金15元 12月24日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 matlab支持向量机使用错误
  • ¥99 利用C/C++语言,使用TCP/IP协议,编一个简易聊天程序
  • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
  • ¥15 晶体塑性有限元——Damask求解
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图