c - 8051 无法转储十六进制文件

标签 c embedded hex uart 8051

我用 C 语言编写了一个 UART TX 代码。数据使用 while (1) 循环进行传输。由于 Controller 一直忙于传输数据,我无法将任何新的十六进制文件转储到芯片上。它总是告诉通信失败。

#include <reg51.h>
void inituart(void);
void Tx_Data(unsigned char);
void SCI_String_Tx(unsigned char *string);
void delay_ms(unsigned char milliseconds);

   void delay_ms(unsigned char ms)
   {
       unsigned char t1;
       unsigned int t2;

for(t1=0; t1<ms; t1++){
    for(t2=0; t2<711; t2++);
      }
   }

void inituart()
{
    TMOD=0X21;
    SCON=0X50;
    TH1=0XFD;
    TR1=1;

}


void SCI_String_Tx(unsigned char *string) 
{
    while(*string)
    {
        Tx_Data(*(string++));
    }
}

void Tx_Data(unsigned char v)
{
     SBUF=v;
     while(TI==0);
     TI=0;
}


void main(void)
{
    inituart();
        while (1)
        {   
            delay_ms(1000);
            SCI_String_Tx("HELLO WORLD!"); //Data to terminal
            delay_ms(1000);
            delay_ms(10);
        }

 }

最佳答案

您的意思是要将程序下载到MCU芯片中吗?

ARM 有很多方法可以做到这一点,例如:isp、jtag、uart...

您可以从芯片的DATASHEET中查看详细信息。

关于c - 8051 无法转储十六进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947102/

相关文章:

c - malloc 调用的静态替换

embedded - 在嵌入式 RTOS 任务之间传递消息的好方法(但可以优雅地处理消息超时)

c++ - 如何在 C++ 中从十六进制字符串输出 Unicode 字符?

c - 读取 MIDI 文件 (C) : 0x00 appearing after the end of a var-length value

c# - 如何根据数字格式将十进制和十六进制字符串解析为 int

c - 需要左值作为赋值的左操作数

c - 如何在 C99 中用另一个结构成员初始化 void* 数据结构成员?

c - 如何用汇编程序将二进制数据写入文件?

windows - 滥用 USB 大容量存储类进行无驱动 I/O

C程序垂直线不在窗口内打印(方形)