刚刚才发现是STM32CubeMX系统设置出问题,DEBUG没配置,有可能默认烧程序的IO口不用做调试,只做普通口???,然后烧录一次程序后就不能再用了,只能通过串口烧录一个正常程序。SYS配置debug选择SW,这样就不会出现程序只能少一次的情况了。
keil+jlink环境,正在学习STM32CubeMX,刚学了个串口,用keil里面的工具,设置SW模式烧录程序,今天烧完程序后,再次烧录,出现警告no cortex-m sw device found,无法烧录程序,无奈找好找网上的大神,发现可以用串口烧程序,刚好板子上留有串口1的接口(网上是这么写的,使用串口下载程序只能使用Usart1),且板子上BOOT0 可以选拉高或拉低,手边还有USB转串口工具。用的是FLYMCU软件,网上有很多资源。我用的FLYMCU软件链接
链接:https://pan.baidu.com/s/11qbOMugfWL_Pf1fMCZ1uWQ 密码:xquu
具体步骤如下:
1. STM32板子上BOOT0接10K电阻到3.3V
2. 串口工具准备(我用的串口芯片是CH340G)
3. 串口连接(串口工具CH340G芯片的TX接STM32串口1的RX,串口工具CH340G芯片的RX接STM32串口1的TX)
串口工具4. 串口工具USB端口连接电脑
5. KILE生成HEX文件,确保HEX文件是正常可用的,JTAG口是调试口(确定不是STM32CubeMX生成的未配置SYS-debug的HEX文件)
打开FLYMCU软件,搜索串口,找到我们的串口工具CH340G的端口号,波特率115200,按步骤1-6执行,右下角绿色进度条会显示,下载完成。下载完成后,记得把BOOT0接10K电阻到地,上电程序正常运行,用JLINK连接到keil里面的工具,设置SW模式烧录程序,显示正常,这代表我又可以用jlink直接烧程序了。
flymcu工具问题记录:
1. 读器件信息读不出来,芯片超时无应答,无法连接
首先,确保硬件连接无误,TX,RX没有接错,
其次,确保STM32的BOOT设置无误BOOT0=1,BOOT1=0
再次,检查端口号,确保端口正确无误。
我的读不出来就是端口号填错了,电脑自带串口1,我没改,我串口工具用的端口com9,点了搜索串口,显示出来2个端口,然后选了com9,才读出来
2.生成HEX文件
配置FLASH------Cingigure Flash Tools...-------Output -----OK
点击rebuild, 然后在程序的OBJ文件夹下,有个HEX文件,就是刚才生成的可用HEX文件
config output rebuild obj---hex
网友评论