无法通过UART,STM32F415将.bin文件从计算机发送到微控制器

时间:2016-09-22 20:14:23

标签: terminal uart keil flash-memory stm32f4

我正在尝试将文件(.hex文件)从我的计算机发送到微控制器的内部闪存。暂时我正在使用Hercules终端发送文件。我的UART响应发送的数据。

我的内部闪存扇区是128K字节,我的文件大约是50K字节,所以空间不是问题。

将.hex文件发送到文件中的某个点时,数据会被传输,但过了一段时间它就会停止。我不明白为什么。

为了减慢速度,我尝试了UART波特率115200到2400。

以下是代码:

while(1) 
    {
        i = 0;
        int c;
        char str[256];
        printf("\n> ");
        do
        {
            c = fgetc(stdin);
            if(c=='\n')
                break;

            if(c!=-1)
            {
                str[i++] = c;
                delay(10);
            }

        }while(1);
        //str[i]='\0';
        //printf("Got..%s\n",str);
        int j = 0;
        while(j < i-1)
        {
        uint64_t data;
        uint64_t *pData = (uint64_t*)(str + j); //

        //data = *((uint64_t*)&str[i]);
        //++pData;
        data = *pData;

        if (HAL_FLASH_Program(TYPEPROGRAM_BYTE, start_address, data) != HAL_OK) {
                HAL_FLASH_Lock();
                }else
                {
                    //printf("\nSuccess: Writing a byte at (%x) ==> %c ",start_address,*((char*)&data));
                }
                delay(10);
        //data++;
                start_address=start_address+1;  
                j++;
            }
}

下面我附上我的Hercules终端图片:

0 个答案:

没有答案