简直一切的同类书本都介绍综合性的运用示例如“万年历 + 温度显现 + 闹钟响铃 + 计时表”这样的一个实时时钟典范或“STM32 + 音频解码 + 大容量存储计划”这样的MP3播放器典范。这些综合性实例的意图在于引领读者进行综合性试验,到达把单片机的根底模块整合运用的意图。这些实例普遍存在一种共同点,即“练手”含义要大于“有用”的含义。本文将推荐一个STM32的综合性运用示例,该示例将涉及到STM32微控制器的时钟体系、GPIO、定时器、中止体系、异步串口以及内置可编程flash等设备的运用,作为一个综合性试验的一起还具有很强的“有用”含义。这个示例便是STM32的IAP计划。
IAP,全称是“In-Application
Programming”,中文解释为“在程序中编程”。IAP是一种对经过微控制器的对外接口(如USART,IIC,CAN,USB,以太网接口乃至是无线射频通道)对正在运行程序的微控制器进行内部程序的更新的技能(留意这彻底有别于ICP或许ISP技能)。ICP(In-Circuit Programming)技能即经过在线仿真器对单片机进行程序烧写,而ISP技能则是经过单片机内置的bootloader程序引导的烧写技能。无论是ICP技能仍是ISP技能,都需求有机械性的操作如衔接下载线,设置跳线帽等。若产品的电路板现已层层密封在外壳中,要对其进行程序更新无疑困难重重,若产品装置于狭隘空间等难以触及的当地,更是一场灾祸。但若进引入了IAP技能,则彻底能够防止上述为难状况,并且若运用远距离或无线的数据传输计划,乃至能够完成长途编程和无线编程。这肯定是ICP或ISP技能无法做到的。某种微控制器支撑IAP技能的首要条件是其有必要是根据可重复编程闪存的微控制器。STM32微控制器带有可编程的内置闪存,一起STM32具有在数量上和品种上都非常丰富的外设通讯接口,因此在STM32上完成IAP技能是彻底可行的。
完成IAP技能的中心是一段预先烧写在单片机内部的IAP程序。这段程序首要担任与外部的上位机软件进行握手同步,然后将经过外设通讯接口将来自于上位机软件的程序数据接纳后写入单片机内部指定的闪存区域,然后再跳转碑文新写入的程序,终究就到达了程序更新的意图。