📽PCBA实物图

📺最终的的PCB 3D效果图

✨本硬件电路
未解决采用合宙的Air32F103CBT6芯片,当ST-LINK/V2使用时,对stm8在线调试功能的友好支持(仅对stm8支持下载,对stm32所有功能正常),ST的STM32F103CBT6以及极海的APM32F103C8T6使用STM32CubeProgrammer软件序列号显示异常的问题。后两款芯片都支持对stm8在线调试功能,但是不支持STM32CubeProgrammer软件烧录程序,这一点,合宙的Air32F103CBT6芯片支持STM32CubeProgrammer软件对stm32烧录以及目标OB选项参数配置。
✨由于设计之初只考虑当
ST-LINK V2来用,主要是用来给STM8和stm32烧录程序。没有考虑到会将固件升级到ST-LINK/V2-1,带虚拟串口和虚拟U盘。
UM0817文档

🔰主控使用
STM32F103CBT6,或者采用合宙的Air32F103CBT6芯片也可以,极海的APM32F103C8T6以及合宙的Air32F103CBT6已经实物验证了可以使用ST-LINK/V2、ST-LINK/V2-1固件并烧录STM32。
- 🔖如果采用合宙的
Air32F103CBT6芯片,可以烧录对应固件当作:ST-LINK/V2、ST-LINK/V2-1、CMSIS-DAP其中的一种。如果需要通过IAR或者STVD软件针对stm8在线调试,不推荐使用该芯片,而是使用STM32F103CBT6主控,或者使用极海的APM32F103C8T6,IAR和ST Visual Develop软件在线调试功能都正常。- 如果采用极海的
APM32F103C8T6当作:ST-LINK/V2那么就不支持STM32CubeProgrammer软件对STM32进行程序烧录以及OB选项修改,无法连接到目标芯片,序列号显示@符号。通过STM32 ST-LINK Utility软件点击Refresh后,烧录器的序列号能显示支持,以及Keil在线烧录不受影响。
🌿采用合宙Air32F103CBT6芯片烧录ST-LINK/V2固件后,连接烧录目标信息,烧录器的序列号:B55B5A1A0000000064B9D201,能正常显示。

主控采用极海的APM32F103C8T6芯片烧录ST-LINK/V2固件后,连接烧录目标信息,STM32 ST-LINK Utility软件,能正常显示。

使用STM32CubeProgrammer软件,则显示@:

主控使用STM32F103CBT6序列号信息340024000C0000373446524E

而使用STM32CubeProgrammer软件,则显示4:

Air32F103差异说明⚡整体来说可以使用,但是当ST-LINK/V2使用时,针对
stm8在线调试功能表现不佳,对stm32功能正常。Air32F103在对stm8进行在线调试功能上表现差劲,不管是通过IAR软件调试还是STVD软件发现很难实现在线调试。在点击调试按钮时,容易报the debugging session could not be started.弹窗,SWIM error [30006]错误信息,有时多点几次又能成功进入调试。如果需要将Air32F103当ST-LINK/V2使用特别注意这一点。当通过stm8专用下载软件:STVP进行下载,每次硬件连接后需要点击3次,才能下载成功,在不重复拔插情况下,后面可以连续下载成功。主控使用STM32F103CBT6不存在以上问题。
STM32F103CBT6对stm8的在线调试功能演示:

ST-LINK/V2。
- 将原始固件:
STLinkV2.J16.S4.bin烧录进去.
- 升级固件。升级工具可以选择:
stsw-link007中的升级工具ST-LinkUpgrade.exe或者使用STM32CubeProgrammer工具进行升级,最终升级到当前最新版本V2J40S7。
stsw-link007\Windows\ST-LinkUpgrade.exe
STM32CubeProgrammer工具
🍁两个工具进行升级,可以看到最终升级的固件版本有差异。使用
stsw-link007工具最终升级的版本是V2.J40.S7,而STM32CubeProgrammer工具最终升级到的版本是V2.J39S7
STM32CubeProgrammer工具升级之后:

🚩1. 以上两个工具升级,不管是使用
stsw-link007工具升级到V2.J40.S7,还是通过STM32CubeProgrammer工具升级到V2.J39S7,可以使用Keil软件烧录或STM32 ST-LINK Utility烧录工具,但是对于主控采用STM2F103CBT6芯片的,STM32CubeProgrammer工具不能下载,可以识别到烧录器以及固件版本,序列号显示7,感觉是这里异常导致不能下载程序。不影响使用命令行调用下载命令。例如在Arduino IDE环境下,通过命令行执行烧录,不知道是不是买的这颗芯片的个别体质问题还是其他原因,使用合宙的Air32F103CBT6芯片的可以正常显示序列号,并且可以使用STM32CubeProgrammer工具直接下载和配置OB选项。🚩2. 合宙的
Air32F103CBT6芯片支持烧录ST-LINK/V2固件,当作STM32 调试和下载器使用以及对stm8的程序下载功能(在线调试功能表现差劲)。


🔰在
STM32 ST-LINK Utility软件里烧录器序列号显示:

STM32CubeProgrammer工具升级到V2.J39S7之后,还可以使用stsw-link007工具升级到最终的V2.J40.S7。当然你可以直接使用stsw-link007工具来直接升级到V2.J40.S7。
🌴升级之后的版本:

🔰使用STVP工具,给stm8程序烧录:

✅支持IAR软件在线调试
🔨也还可以通过STM32CubeProgrammer工具降级到V2.J39S7。

ST-LINK/V2-1(不支持stm8烧录)
- 🍂通过
STM32 ST-LINK Utility工具烧录固件STLinkV2.J28.M18.bin- 🍂通过其工具
STM32 ST-LINK UtilityST-LINK升级功能,升级到V2.29.M18.
stsw-link007工具升级到最新固件版本:V2.J40.M27

🛠使用stsw-link007工具升级。

🎋也可以使用STM32CubeProgrammer工具为烧录器升级固件,不过当前升级的固件版本还没有stsw-link007工具升级的固件版本高。

⚡升级后可以使用STM32CubeProgrammer工具给STM32下载程序。

🎉
DAP-LINK是开源的,网上可以找到很多STM32f103刷dap-link固件。烧录和调试接口和ST-LINKV2的SWD接口共用,所以也可以用来刷DAP-LINK固件,来当DAP-LINK使用。在立创开源广场也有同类开源项目。
air32_daplink.hex。



https://www.st.com/resource/en/data_brief/st-link-slsh-v2.pdfSTSW-LINK009为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动:https://www.st.com/zh/development-tools/stsw-link009.htmlSTM32CubeProgrammer烧录工具:https://www.st.com/zh/development-tools/stm32cubeprog.htmlSTSW-LINK007升级工具:https://www.st.com/zh/development-tools/stsw-link007.htmlSTM32 ST-LINK Utility烧录和固件升级工具:https://www.st.com/zh/development-tools/stsw-link004.html⚡其固件请前往立创开源链接附件下载,这里不提供。
⚡官方ST-Link V2原理图:
链接:https://pan.baidu.com/s/1nn_U7SOybdUTGptBbAKUTA
提取码:q3no
🎈Stlink-Bootloaders包含(V2.0、V2.1):
https://github.com/Krakenw/Stlink-Bootloaders

📓NUCLEO_8S208RB_STM8Nucleo_64开发板中下载部分的原理图如下:

📍更多可以参考其他教程《修复ST-LINK V2下载器 | ST-LINK V2下载器烧录DAPLink固件》
https://oshwhub.com/perseverance51/st-linkv2-xia-zai-qi我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我是HanamiWorld的新人。我已经写了这段代码:moduleWeb::Views::HomeclassIndexincludeWeb::ViewincludeHanami::Helpers::HtmlHelperdeftitlehtml.headerdoh1'Testsearchengine',id:'title'hrdiv(id:'test')dolink_to('Home',"/",class:'mnu_orizontal')link_to('About',"/",class:'mnu_orizontal')endendendendend我在模板上调用了title方法。htm
我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame
在Ruby上的Mechanize中,我必须为我访问的每个新页面分配一个新变量。例如:page2=page1.link_with(:text=>"Continue").clickpage3=page2.link_with(:text=>"About").click...etc有没有一种方法可以在没有保存每个页面状态的变量的情况下运行Mechanize?喜欢my_only_page.link_with(:text=>"Continue").click!my_only_page.link_with(:text=>"About").click! 最佳答案
在许多ruby类之间共享记录器实例的最佳(正确)方法是什么?现在我只是将记录器创建为全局$logger=Logger.new变量,但我觉得有更好的方法可以在不使用全局变量的情况下执行此操作。如果我有以下内容:moduleFooclassAclassBclassC...classZend在所有类之间共享记录器实例的最佳方式是什么?我是以某种方式在Foo模块中声明/创建记录器还是只是使用全局$logger没问题? 最佳答案 在模块中添加常量:moduleFooLogger=Logger.newclassAclassBclassC..
假设您有一个可执行文件foo.rb,其库bar.rb的布局如下:/bin/foo.rb/lib/bar.rb在foo.rb的header中放置以下要求以在bar.rb中引入功能:requireFile.dirname(__FILE__)+"../lib/bar.rb"只要对foo.rb的所有调用都是直接的,这就可以正常工作。如果你把$HOME/project和符号链接(symboliclink)foo.rb放入$HOME/usr/bin,然后__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb关于foo.rb的目录名.我意识到像rubygems这
我正在学习Rails,我注意到Rails不断地使用诸如link_to之类的辅助方法,而不是仅仅使用普通的html。现在我可以理解为什么他们会使用他们会使用一些辅助方法,但我不明白为什么他们更喜欢辅助方法而不是直接编码html。为什么Rails更喜欢辅助方法而不是您必须手动编写html?为什么Rails团队做出这样的设计选择? 最佳答案 在Rails应用程序中,通常使用URL方法和内容方法生成链接,例如这绝对比将它们放入中更易于管理手动标记。">(您正在使用路由器生成这些URL,对吗?如果您硬编码/users/1并决定稍后将其设为/u
SCIM是Google、Salesforce、PingIdentity等提出的用户配置的新标准。是否有现有的ruby实现来支持它?SimilarbutforJava 最佳答案 您可以获得一个面向Okta的开始fromhere或从头开始here但我认为您只能靠自己。耶!您有机会为Ruby社区贡献一个开源项目:) 关于SCIMv2的Ruby实现,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques