可以使用仿真器,
或是如下的工具
据我所知,好像没办法通过串口把代码读回来,只能够通过Jlink,用Jflash上位软件将STM32 flash里的代码读回来。
STM32的串口烧录接口是一个ISP接口,通过boot启动不同区域代码实现对flash的烧写。
如果楼主真的想用串口来读取代码,可以利用STM32上的IAP功能,在单片机上运行一个IAP程序,读取Flash里的数据,并通过串口吐出来。
个人拙见,如果真有通过串口读取出代码的方式,还请楼下补充。
补充,看了一楼的软件,确实是可以读出来的:
将boot0接1,boot1接0,运行FlyMCU的读flash,按下复位键,可以将flash数据读出成bin文件。附上这个flymcu软件。
FlyMcu.rar
1、使用st-link加ST-LINK Utility可以保存flash中的数据,而且是指定其实位置指定长度。
2、keil+仿真器
在调试状态下打开keil的command line 窗口使用keil自带的save命令可以保证指定位置的数据,如果怕调试会破换flash的数据可以在ram中调试,不过这种方法保存的数据是hex文件,可以在转成bin文件。可以参考 http://blog.csdn.net/gameyi/article/details/51519765
1. ST-LINK Utility
2. J-FLASH
以上都可以讀出Binary