MacOS之STM32CubeMX和System Workbench系列问题解决

发布者:Serendipitous55最新更新时间:2019-06-15 来源: eefocus关键字:MacOS  STM32CubeMX  System  Workbench系列 手机看文章 扫描二维码
随时随地手机看文章

自从主力机器使用MBP以后,家里的唯一的一台Windows机器就是NAS了,一直远程使用NAS在Win下面玩STM MCU。但是低功耗的J3160跑开发还是慢啊,最近终于下决心把开发环境迁移到MacOS并使用完全开源IDE,决定使用STM32CubeMX和System Workbench的组合。折腾了大约一天,遇到了好几个坑,在MacOS和Win10之间来回折腾最终解决了。在此记录一下并分享给大家。


软件版本:

STM32CubeMX V4.25.0  


System Workbench V2.4


硬件:麒麟座Mini版


MacOS下遇到的问题:


1.1 Eclipse下载的时候报错:

Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748


1.2 Eclipse下载的时候报错:


Error: init mode failed (unable to connect to the target)

*******************

** OpenOCD init failed **


1.3 Eclipse下载的时候报错:


Error: timed out while waiting for target halted

TARGET: STM32F103RETx.cpu - Not halted

in procedure 'program' 

in procedure 'reset' called at file "embedded:startup.tcl", line 490

in procedure 'ocd_bouncer'

** Unable to reset target **

shutdown command invoked


 


Win下遇到的问题:


2.1 Stlink USB communication error


2.2 No Target Connected


 


2.3 Error:Flash Download Failed-"Cortex-M3"


2.4 Cannot load flash programming algorithm


      因为对STM32CubeMX不熟悉, 然后参考了某网站的教程,该教程里面没有提到SYS设置,而STM32CubeMX默认SYS设置里面的Debug选项默认是No Debug, 然后我就开始了烧写,然后就出现了问题1.1(Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748)和问题1.2 (** OpenOCD init failed **)的错误。未配置SYS就进行烧写导致PA13和PA14引脚被错误设置,所以无法下载程序,错误设置后即便修正了SYS设置(Debug选择Serial Wire)也无法正常下载。搜索了很多网上相关的网页,而且尝试升级了STlink V2的固件 (http://www.st.com/en/development-tools/stsw-link007.html ),都没解决问题1.2 。


    而问题1.1的解决比较简单,就是不使用自动生成的cfg配置文件,自定义cfg配置文件并修改其中的 source [find interface/stlink.cfg] 为source [find interface/stlink-v2.cfg] 即可。这两个文件在/Applications/Ac6/SystemWorkbench.app/Contents/Eclipse/plugins/fr.ac6.mcu.debug_2.1.4.201801121207/resources/openocd/st_scripts/interface/下,有兴趣可以看一下,其中一个pid是0x374B,另外一个pid是0x3748,所以使用stlink-v2.cfg这个正确的文件即可,还有一个文件是stlink-v2-1.cfg,里面的pid也不匹配。


     问题1.2折腾无果后,然后决定在Win下面尝试一下,因为原先Win下面用Keil是可以的。然后Keil下载麒麟座自带的跑马灯程序的时候,遇到了问题2.1 (Stlink USB communication error),网上有两个方法解决:升级Keil,或者给STlink-v2固件降级(好吧 我两样都做了),低版本固件地址(V2.J20.S4 链接:https://pan.baidu.com/s/1dHlgYwL 密码:6vwr),解决了问题2.1。再次尝试用Keil下载,遇到了问题2.2(No Target Connected)。


    其实问题2.2的原因和问题1.2一样,都是因为PA13和PA14引脚被错误设置导致的。于是搜了很久,参考了西城无故事的博客(https://blog.csdn.net/liaodong2010/article/details/52734384 )和周勇的博客( http://zhyong319.blog.163.com/blog/static/6857205201276105311857/),他们的解决方式是下载前手动reset大约0.5s然后有一定概率能正常烧写,但是我在周勇的博客评论中看到一个更简单的方法,那就是把Boot0和Boot1拉高,随意写一个能跑的程序然后就能正常烧写了。


      解决了这两个问题以后,再次尝试Keil烧写,遇到了错误2.3和错误2.4,主要原因是因为升级了Keil,板子类型没有选对,在Flash->Configure Falsh Tools配置窗口中,切换到“Utilities"页,按“Setting"按钮进入“Flash download setup"配置窗口,在“Flash download setup"配置窗口点击“Add”按钮,在“Add Flash Programming Algorlthm"窗口中选择STM32F10x Med-density 128k (麒麟座Mini版的处理器是STM32F103CBT6 128k Flash),然后2.3和2.4就都解决了。


 


      然后回到MacOS,再次烧写,遇到1.3错误,解决办法是把配置文件中的 reset_config 这一行改为reset_config none 即可。最后一个问题是,如果在项目名称上点右键,如果直接选择Target-Program chip,我这里无法把最新程序下载到MCU上。不过直接在菜单栏上点击Run是可以下载的。后来发现需要先右键-Build project,然后右键再选择Target-Program chip才可以。所以还是直接菜单栏点击Run最方便。


     最后,我把STlink V2的固件升级到最新,全部都能正常工作了。


      总结一下:


 


MacOS下遇到的问题解决方法:


1.1 Eclipse下载的时候报错:


Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748


解决方法:


使用自定义配置文件进行编译,并进行如下修改:


source [find interface/stlink.cfg] 更改为 source [find interface/stlink-v2.cfg]


自定义配置文件方法,直接右键点击 项目名 Run.cfg 文件并改个文件名,然后右键点击项目树里面的项目名称,选择“Propeties”,然后在Run/Debug Settings-选择项目名-Edit-Debugger-User Defined-Browse 那里选择你自己改名的配置文件:



 


1.2 Eclipse下载的时候报错:


Error: init mode failed (unable to connect to the target)

*******************

** OpenOCD init failed **


解决方法:这里是由于PA13和PA14被错误配置导致的。首先修复STM32CubeMX中的SYS设置,在SYS-Debug中选择Serial Wire。然后拉高Boot0和Boot1烧写一个正常固件,然后拉低他们,就能正常烧写了。


1.3 Eclipse下载的时候报错:


Error: timed out while waiting for target halted

TARGET: STM32F103RETx.cpu - Not halted

in procedure 'program' 

in procedure 'reset' called at file "embedded:startup.tcl", line 490

in procedure 'ocd_bouncer'

** Unable to reset target **

shutdown command invoked


 


解决方法:


修改 * Run.cfg文件,把 reset_config srst_only srst_nogate connect_assert_srst 这一行改为 reset_config none 


配置文件自定义方法参考1.1 解决方法。


Win下遇到的问题解决方法:


2.1 Stlink USB communication error 


解决方法:更新Keil,或者给STLink V2固件降级。V2.J20.S4 链接:https://pan.baidu.com/s/1dHlgYwL 密码:6vwr


2.2 No Target Connected


解决方法:这里是由于PA13和PA14被错误配置导致的。拉高Boot0和Boot1烧写一个正常固件,然后拉低他们,就能正常烧写了。


2.3 Error:Flash Download Failed-"Cortex-M3"

解决方法:这里是由于芯片类型没有选择正确导致的。在Flash->Configure Falsh Tools配置窗口中,切换到“Utilities"页,按“Setting"按钮进入“Flash download setup"配置窗口,在“Flash download setup"配置窗口点击“Add”按钮,在“Add Flash Programming Algorlthm"窗口中选择正确的芯片型号和Flash大小即可。


2.4 Cannot load flash programming algorithm

解决方法:这里是由于芯片类型没有选择正确导致的。解决方法同上。


关键字:MacOS  STM32CubeMX  System  Workbench系列 引用地址:MacOS之STM32CubeMX和System Workbench系列问题解决

上一篇:STM32CubeMX学习教程之七:ADC读取电压并输出到串口
下一篇:MacOS下STM32CubeMX安装文件双击无反应的解决办法

推荐阅读最新更新时间:2024-11-12 19:12

STM32CubeMX:ETR外部脉冲计数器
使用TIM定时器ETR管脚对外部脉冲进行计数,用PA0模拟产生脉冲进行计数。 芯片:STM32F103C8T6 输出:PA0、PA12(TIM1_ETR)、USART1 配置界面 TIM1配置 Period为计数溢出周期 代码应用 /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start(&htim1); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
[单片机]
IAR Embedded Workbench已全面支持极海半导体APM32系列MCU
IAR Embedded Workbench for Arm 9.30已全面支持极海半导体APM32系列MCU芯片 ,广泛应用于智慧家庭、高端消费电子、汽车电子、工业控制、智慧能源等领域,为国产芯片保驾护航 中国上海—2022年7月13日——全球领先的嵌入式开发软件工具和服务提供商IAR Systems日前宣布: 其最新发布的IAR Embedded Workbench for Arm 9.30已全面支持极海半导体APM32系列MCU芯片。 极海高性能、高集成度、低功耗的APM32系列工业级/车规级MCU广泛应用于智慧家庭、高端消费电子、汽车电子、工业控制、智慧能源等安全与可靠性要求高的领域,且表现不俗。 该系列MC
[嵌入式]
IAR Embedded <font color='red'>Workbench</font>已全面支持极海半导体APM32<font color='red'>系列</font>MCU
玩转STM32CubeMX | 开发环境
开发环境搭建 1.Keil MDK-ARM软件简介及安装 1.1 Keil MDK-ARM简介 Keil MDK,也称MDK-ARM,目前由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。 MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、 MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库
[单片机]
玩转<font color='red'>STM32CubeMX</font> | 开发环境
​Transphorm携手Allegro MicroSystems提升大功率应用中氮化镓电源系统性能
专为大功率应用而设计的隔离式栅极驱动器,有助于加速氮化镓半导体在数据中心、可再生能源和电动汽车领域的应用 加利福尼亚州戈莱塔 – 2023 年 1 2 月 7 日 – 全球领先的氮化镓(GaN)功率半导体供应商 Transphorm, Inc.(Nasdaq: TGAN)宣布与为运动控制和节能系统提供电源及传感半导体技术的全球领先企业Allegro MicroSystems, Inc.(Allegro)开展合作,使用Transphorm 的 SuperGaN® 场效应晶体管和Allegro的AHV85110隔离式栅极驱动器,针对大功率应用扩展氮化镓电源系统设计。 Transphorm 的
[电源管理]
​Transphorm携手Allegro Micro<font color='red'>System</font>s提升大功率应用中氮化镓电源系统性能
TDK收购超声波MEMS传感器先锋Chirp Microsystems
- TDK收购高性能超声波3D传感解决方案开发商Chirp Microsystems; - 此次收购将补强TDK现有指纹识别传感器、MEMS传感器等技术以及压电换能器产品线; - TDK旨在成为超声波MEMS传感器及解决方案的市场领导者。 据麦姆斯咨询报道,TDK近日宣布与高性能超声波传感先锋企业Chirp Microsystems(以下简称Chirp)达成收购协议,Chirp将成为TDK的全资子公司。TDK预计将在数日内完成对Chirp的收购。关于此次收购的财务信息暂未披露。 Chirp公司的系统级封装MEMS超声波传感器 Chirp主要专注于高性能超声波传感器的开发,其产品相比现有技术尺寸更小、功耗更低。Chirp的解
[传感器]
TDK收购超声波MEMS传感器先锋Chirp Micro<font color='red'>system</font>s
GaN Systems和安森美联合推出300W交流适配器方案
GaN Systems和安森美日前推出了最高功率密度300瓦的交流适配器参考设计,该产品使用GaN Systems的650V,15A GaN E-HEMT和安森美半导体控制器和驱动器IC。 通用的参考设计使设计人员能够开发功率密度高达每立方英寸32瓦的适配器并将其推向市场。 该套件和应用笔记提供了详细的技术信息,包括原理图,PCB布局,物料清单文件以及EMI和效率数据。 该套件硬件具有完整的PFC,LLC和次级,并具有符合CoC T2基准的高效同步PFC,低成本2层设计以及在340W峰值具有19V输出的通用输入。
[电源管理]
攀西政府与日本LE System签约年产60000立方米钒电解液项目
9月24日,区委副书记、区长尚滟佳率西区代表团参加2024中外知名企业四川行市级平台活动——攀枝花市储能产业投资推介会。推介会上,西区人民政府与株式会社LE System成功签约年产6万立方米钒电解液项目。图片该项目计划总投资约5亿元,分两期建设。一期计 ...
[新能源]
OS X更名macOS 还可以用Siri搜索然后Apple Pay一下
    新浪手机讯 6月14日凌晨消息,苹果公司举行2016年WWDC全球开发者大会,介绍了watch OS、tv OS、OS X以及iOS 10系统的新特性。   OS X已经使用了很长时间,但它与其他系统的命名方式不是很和谐。所以苹果把OS X正式更名为macOS,它的首个版本叫Sierra。 Siri 在 macOS 上   安全性方面,用户可以用手表来解锁Mac了,这个功能用起来还是比较富含装X属性的。云端同步方面iCloud的应用场景更强,在iPhone上也能看到Mac上文件内容。为了更好地给新文件腾出空间,macOS的磁盘清理功能将更具深度。   在网页上使用Apple Pay在macOS上得以实现,不过仍然
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved