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

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 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题