Arduino IDE+STlink 给STM32F103C8T6烧写的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3210|回复: 9

[未解决] Arduino IDE+STlink 给STM32F103C8T6烧写的问题

[复制链接]
发表于 2021-2-12 19:51 | 显示全部楼层 |阅读模式
之前,一直是用Serial的方法给STM32下载程序,每次要拔BOOT0,再按复位,下载也稍慢 。然后,突然翻到一块吃灰的STlink,就试试,发现     不用拔BOOT0,不按复位,下载也稍快 。
最后问题来了:
串口功能没有了。。。
程序完全没有变,用Serial方法是没有问题的,用了STlink就不成,再用回Serial方也行。
请问大家有谁也弄过么?可能是什么原因?
发表于 2021-2-17 12:30 | 显示全部楼层

回帖奖励 +5 金币

ST-LINK使用注意 - Andrew_qian - 博客园
发表于 2021-2-17 12:31 | 显示全部楼层
ST-LINK使用注意
利用ST-LINK下载程序注意事项:
1、接线

按照上面图对着自己的开发板连接相应的引脚就可以了。
2、keil5配置
线连接完之后,要对自己的工程进行相关的 配置才能正确进行下载。
首先选择ST-LINK,然后点击setings按钮
然后选择SW方式下载。如果链接成功的话右侧红框内有你的ST-LINK的ID,
再其次,选择你的设备参数,一般选择下面这个。
3、下载
上面只是软硬件准备,最后就是下载,注意自己的开发板要单独供电,ST-LINK不能供电。
点击keil5里面的下载按钮,然后最重要的是,
要按一下开发板的复位按键,要按一下开发板的复位按键,要按一下开发板的复位按键,
不知道别人是什么情况,反正我的开发板是不按复位就无法下载。
然后
下载成功。


虽千万里,吾往矣。

 楼主| 发表于 2021-2-17 18:59 | 显示全部楼层
114144640 发表于 2021-2-17 12:31
ST-LINK使用注意
利用ST-LINK下载程序注意事项:1、接线
按照上面图对着自己的开发板连接相应的引脚就可以 ...

谢谢。图打不开,我按你说的摆渡了下,但貌似没提到关键的问题:为啥其它功能正常 ,就串口不好使?
EN,可能我在描述里没提到 Arduino IDE。。。我是在Arduino IDE环境里用的,Keil已经用不习惯了。
不过也是个方法,我对比一下试试,看能不能缩原因范围。
发表于 2021-2-17 23:13 | 显示全部楼层

回帖奖励 +5 金币

可以试下在Stduino IDE中用Stlink给C8T6下载程序
 楼主| 发表于 2021-2-20 02:37 | 显示全部楼层
不是STLink的事儿,应该是Arduino IDE或是STM32的Arduino化文件问题,验证方法及结果:
1.用Serial方法在Arduino IDE下,下载运行正常
2.用Serial方法编译生成的bin文件,在STM32 ST-Link Utility工具下,下载运行正常

3.用STLink方法在Arduino IDE下,不正常
4.用STLink方法编译生成的bin文件,在STM32 ST-Link Utility工具下,下载运行不正常

Arduino IDE编译生成的bin文件,STLink方法与Serial方法生成的不同, 前者体积要大些
 楼主| 发表于 2021-3-7 00:17 | 显示全部楼层
问题解决!1.可以完成:用Arduino IDE,通过Stlink,给STM32F103C8T6下载程序,并且保证串口可以工作 (未解决前,用Stlink下载,串口功能不好使,不知道是不是只有我的有这问题。。。)
2.节省时间:对于约47K大小的文件,通过Serial(其实应该是用的flash loader)用时约10秒,用Stlink用时约6秒,节省4秒时间(从按下upload开始计)
3.节省过程:原来下载前要拨动BOOT0,再按复位,用Stlink就什么都不用了,就只管下载就OK

解决方法(只针对于铺天盖地的STM32F103C)

1.去  X:\Program Files (x86)\Arduino\hardware\STM32\STM32F1  文件夹,打开 board.txt
2.找到:genericSTM32F103C.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER
3.去掉后面的:=1 -DSERIAL_USB -DGENERIC_BOOTLOADER
4.变成:genericSTM32F103C.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG

对比过程
1.原始,未改前,  分别选Serial,Stlink,两种下载方法,在  C:\Arduino Hex 内编译生成  XXX.bin文件,大小不同,用winhex打开对比,内容不一样
2.改后,               分别选Serial,Stlink, 两种下载方法,在  C:\Arduino Hex 内编译生成  XXX.bin文件,大小相同,用winhex打开对比,完全一样

Any Question?
不要问为啥这样改,我也不知道为啥。

BTW
或者还可以通过更改  X :\Program Files (x86)\Arduino\hardware\STM32\tools\win文件夹下的,serial_upload.bat 内容,以达到同样的目的,但就不能同时保留原本的串口下载方式,故放弃。(实际是按stlink_upload.bat的内容改了一下serial_upload.bat,把serial_upload.bat后面的下载方式由stm32flash改为stlink。感觉就是在哄Arduino IDE:嘿,先按Serial方式编译,等它吭哧吭哧编译完了,你说,停,来,按Stlink方式下载!
之前也试过:用Serial方式编译生成XXX.bin,然后用STM32 ST-LINK Utility 通过stlink下载,也是OK的(费劲,只是用于验证问题可能出在哪里)



发表于 2021-8-31 13:16 | 显示全部楼层
wwwusr 发表于 2021-2-17 18:59
谢谢。图打不开,我按你说的摆渡了下,但貌似没提到关键的问题:为啥其它功能正常 ,就串口不好使?
EN, ...

我是从别的文章上抠下来的
发表于 2021-9-3 20:22 | 显示全部楼层
wwwusr 发表于 2021-3-7 00:17
问题解决!1.可以完成:用Arduino IDE,通过Stlink,给STM32F103C8T6下载程序,并且保证串口可以工作 (未解 ...

大佬可以帮忙看看嘛,出现这是什么问题

上传项目出错
STM32 ST-LINK CLI v3.3.0.0
STM32 ST-LINK Command Line Interface

ST-LINK SN: 07270D002C135737334D4E00
ST-LINK Firmware version: V2J35S7 (Need Update)
Connected via SWD.
SWD Frequency = 4000K.
Target voltage = 3.2 V
Connection mode: Normal
Reset mode: Software reset
Device ID: 0x412
Device flash Size: 32 Kbytes
Device family: STM32F10xx Low-density

Loading file...
Flash Programming:
  File : C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_177391\Blink.ino.bin
  Address : 0x08000000
Memory programming...
0%����� 10%����� 21%������ 32%����� 43%������ 54%����� 65%������ 76%����� 87%������ 98%� 100%
Memory programmed in 1s and 563ms.
Programming Complete.

MCU Reset.

Failed to run application!
The core is kept under Reset!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 23:53 , Processed in 0.086921 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表