这里的固件是指源代码编译出来的Hex或者Bin文件,其中Hex是十六进制文件、Bin是二进制文件。如下图所示为遥控器代码编译出来的Hex文件。
只要把这个固件烧写进遥控器的主核心STM32F103C8T6的Flash内,遥控器的代码就可以运行。这里已经把编译好固件放在了“【5】遥控器固件烧写”文件夹下,如下图所示。
具体的烧写步骤如下:
这里遥控器的主芯片的型号明明是“STM32F103C8T6”,为什么会选择“STM32F103CB.jflash”呢?这是因为遥控器的整体代码大小占用空间已经超过了“STM32F103C8T6”的64kB大小,而根据STM32官方的提供的解决方法是,把MDK中选择的型号改为“STM32F103CBT6”,编译后也是可以下载固件到“STM32F103C8T6”芯片中的,如下图所示。
可以这样是因为STM32F103C8T6和STM32F103CBT6 是在同一晶圆上制造的,但是ST官方测试时,只测试手册提供的参数范围所包含的内容,也就意味这 STM32F103C8T6也是128kB Flash,只不过只测试了前面64kB,然后打上 STM32F103C8T6标注,所以可以依此来解决代码容量超额问题,经过大量地测试,遥控器代码运行也是正常的。
(4)然后把对应的固件(Hex文件),拖到J-Flash ARM这个软件处就可以打开了,按下F7或者在“Target”下点击“Auto”,即可完成固件的下载。
拔掉下载器,重启遥控手柄电源,遥控手柄的各项功能运行正常。