你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

串口连续接收同时写入FLASH数据不全

[复制链接]
Neo2023 提问时间:2024-6-22 16:48 / 未解决
在学习写一个Bootloader的过程中,想要通过串口助手直接把bin文件发到STM32并写入到APP_FLASH。

35kB的bin文件,只能成功写入十几个字节,还每次都不一样多。
把波特率从115200降低到9600时能写入6kB数据,继续降低到2400时能写入7kB数据到Flash。
还请大佬指教~

                    userapplen =0;
                    timeout = HAL_MAX_DELAY;
                    /* Clean the input path */
                    __HAL_UART_FLUSH_DRREGISTER(&huart1);
                uint32_t data32[UART_BUF_SIZE / 4];
                HAL_StatusTypeDef state;
                HAL_FLASH_Unlock();
                    while(1)
                    {
                            state = HAL_UART_Receive(&huart1, uart_buf, 4, 5000);
                            memcpy(data32, uart_buf, 4);
                            // 关闭总中断
                            __disable_irq();
                            // 写Flash
                            HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, APPLICATION_ADDRESS + userapplen, data32[0]);
                            printf("Programming\r\n");
                            // 开启总中断
                            __enable_irq();
                            if(state != HAL_OK)
                            {
                                    HAL_FLASH_Lock();
                                    printf("Programming completed Successfully! %ldBtye\r\n", userapplen += huart1.RxXferCount);
                                    break;
                            }
                            userapplen += 4;
                    }



收藏 评论2 发布时间:2024-6-22 16:48

举报

2个回答
wtliu 回答时间:2024-6-23 17:48:33

好!!!!

xmshao 回答时间:2024-6-24 11:45:05
你现在的state值 来自于HAL_UART_Receive()函数的返回,它如果不OK的话,原因可能很多。


简单地将!HAL_OK做为结束标志来判断似乎不太合理。因为可能是出错、可能是busy、可能是超时。


另外,RxXferCount应该是 还没有接收到的数据个数,并非已收到的数据个数。


基本操作流程及做法可以参考下其它系列的IAP例程。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版