IAP 技术,也就是在程序中编程,实现远程下载程序,当然,前提是你有无线接收装置或者可以联网,就可以了。
而今天我所用到的是利用串口进行程序的更新,原因是公司所做的产品交付客户后就会被灌上防水胶,同时也会把烧录口给密封起来,不能为了一个程序的升级而破坏防水胶,而且也不能要求客户下载安装Keil的环境和购买LINK。
所以,通过串口给MCU进行程序升级就成为了开发的需求。
通过这几天的学习,我主要参考的教程是 正点原子的 串口IAP实验
和B站Up “不烧板子”的CAN总线IAP实战教学。我采用的也是他的办法 上电3s 内如果串口收到数据,
那么就进行程序的更新 ,如果没有则运行 Flash中的程序。首先,最后肯定是实现成功,但是遗憾的是
公司的产品不能够允许3s内都无现象,所以不能运用在产品中,可能需要去编写上位机对Flag进行控制。
现在将学习的过程分享如下:
在使用正点原子的历程中
使用Up主 提供的历程 ,正点原子的历程 好像更新过了,与视频教程中的对应不上。
可以先利用手中的STM32 F103 先把逻辑跑通,然后在进行在产品上的一直会好很多,
公司的产品大多都会做成集成化很高的程度,不利于观察现象和调试。
不足:这个IAP也有一些不足,比如 只能通过一些串口软件对文件进行整体的发送,无法做到在发送的数据进行校验
无法确定 发送和接收到的文件是否正确。要想实现在发送文件的校验,就需要 制定通讯协议和上位机的开发了,或者现有的一些
通信协议的使用,目前要开始做其他项目了,等我有时间再来研究一下如何开发上位机和通讯协议。也希望有大佬可以指点我一下