想要在Mac下开发32单片机,又不想装虚拟机的同学可以看看

使用工具:CLion(JetBrains家族一员)、STM32CubeMX(配置芯片,生成初始化代码,工程架构)、OpenOCD、ARM toolchain(编译器)
开发板我使用的是正点原子的STM32F103ZET6战舰V3

一、下载CLion

https://www.jetbrains.com/clion/
(一、二下载过程中可以先去下载三、四)

二、下载STM32CubeMX

https://www.st.com/en/development-tools/stm32cubemx.html#get-software
访问不了或者下载很慢就用手机热点

这里需要邮箱验证一下
然后打开压缩包(打不开是因为没有解压缩zip的软件,直接去App Store下一个免费的就行了,如FileZilla Pro)

是无法直接执行安装的,需要用命令去安装
【sudo java -jar XXXX/SetupSTM32CubeMX-6.0.1.exe】
记得路径换成自己的
然后一路next就好了

三、安装其他工具

下载直接使用homebrew (未安装的请看)

OpenOCD:
【brew install open-ocd】

ARM toolchain:
【brew tap ArmMbed/homebrew-formulae】
【brew install arm-none-eabi-gcc】
执行后,测试下是否安装成功
【arm-none-eabi-gcc -v】
有信息输出就代表成功了

四、配置CLion

进入首选项

正常来说会自动配置好,不行就重启下CLion,还不行就自己找路径配
然后两个都点击Test都点击下,都正常就可以

五、创建工程

选择创建STM32CubeMX工程和名称

然后进入工程可以看到一个.ioc文件

点击右边的Open with STM32CubeMX,会自动打开STM32CubeMX

六、到STM32CubeMX配置芯片信息


这里默认使用的是STM32F030F4Px 要改成自己使用的型号,点红框框后弹出下面的图

选择好型号后,点击开始工程,进行下面的配置




这里1的工程名需要和CLion创建的工程名一致
2的路径也需要和CLoin工程的路径保持一致
3也有说选择SW4STM32的,但是我试了会编译失败,换成这个就行。
然后点击4,生成代码,弹框选择yes,覆盖。
然后选择Close就好了

七、回到CLion完成工程创建

回到CLion会弹出开发板配置框框

没有也没关系,在这里可以找到

选择好对应的开发板(不知道的话就选类似的就好了,例如我直接选F103的)
点击复制到工程并使用,然后点击应用

工程就出现了下面的配置文件

因为正点原子使用的是STlink V2 所以把-1去掉,变成V2就好了
然后点击右上角的小锤子编译下,能通过就好了

如果编译失败,出现下面的情况

就把工程删了,老方法重新创建一下就好了。。。。。我找了好久的原因,也不知道为什么会这样。有知道的可以评论回答下。。。。。

八、编写程序和下载

接下来就可以编写程序了,刚好这里的GPB5引脚接了一个LED灯,这里就写的跑马灯Demo

先在初始化GPIO里把 GPB5始能

static void MX_GPIO_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct = {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);/*Configure GPIO pin : LED_Pin */GPIO_InitStruct.Pin = GPIO_PIN_5;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}

然后在main函数的while(1)里写跑马灯程序

  while (1){/* USER CODE END WHILE */HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,RESET);HAL_Delay(100);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,SET);HAL_Delay(100);/* USER CODE BEGIN 3 */}

用STlink连接开发板,点击右上角的小三角形下载。

大功告成~~~~~~~~~~~

在Mac中开发STM32单片机相关推荐

  1. Vscode开发STM32单片机程序

    STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的.这里介绍一些使用 gcc + vscode 开发单片机程序的经验.(这里不解释 gcc 是什 ...

  2. Mac中开发常用的软件

    Mac中开发常用的软件 https://pan.baidu.com/ 开发软件 IDEA2021 IntelliJ IDEA 2022 for Mac(最好用的Java开发工具)永久激活版 Snail ...

  3. 杰瑞服务器虚拟化,大家在Mac中开发PHP,是用虚拟机的方式还是直接在Mac下搭建环境...

    如题,本人想在mac下做PHP开发,想在本地看到实时效果,然后开发完后再部署到服务器上(CentOS),或者用SSH直接连接服务器VIM开发,但我是PHP新手,还是想用PHPStrom(刚买了个一年, ...

  4. STM32单片机开发环境搭建

    学习过程中不能追求大而全,掌握大部分就可以. 注册ST账号 进入ST官网:意法半导体STM | STM32/STM8微控制器 | MCU单片机 点击注册: 进入注册界面: 登录: 账号:1848712 ...

  5. stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32

    在之前的文章中我们介绍了如何使用VSCode去构建一个STM32的单片机项目,今天我们来说一下使用 Qt Creator 来开发STM32单片机. 0x01: 开发环境准备 PlatformIO Co ...

  6. STM32单片机(三).STM32单片机的开发方法

    经过前两章节对STM32的简单介绍,在接下来的几个章节中开始进行STM32单片机的软件开发实践,所使用到的工具有Keil5.STM32CubeMX以及串口软件.对于STM32F1系列的单片机,其存储器 ...

  7. VSCode搭建STM32单片机开发环境

    前言 由于之前的学习过程中使用过了VSCode.Source Insight这类强大的代码编辑器,感觉实在是太好用了.但是最近自己要用到Keil进行STM32单片机的开发,因为使用过了VSCode这类 ...

  8. [STM32] Mac开发STM32之Makefile

    Mac开发STM32之Makefile 在初步接触STM32时,不建议直接就用ST官方的标准生成模板(如STM32CubeMX):推荐先学习STM32的寄存器设置 本例子用正点的开发板,由于代码例子是 ...

  9. 使用vscode + gcc进行 STM32 单片机开发(三)DMA读写SD卡,移植FATFS文件系统

    背景 在本系列的前两篇文章( 使用vscode + gcc进行 STM32 单片机开发(一)编译及调试 使用vscode + gcc进行 STM32 单片机开发(二)gcc环境 移植rtthread) ...

最新文章

  1. Java+Selenium3.3.1环境搭建
  2. KeeSoft.DBHelper.DBFactory 数据库访问类
  3. [codeforces] 527A Playing with Paper
  4. C#字符串常见操作总结详解
  5. Xampp修改默认端口号
  6. 解引用NULL为什么会导致程序挂死?
  7. Android的Dialog类设计的太糟糕了!
  8. 马化腾,你就把微信卖给运营商得了
  9. 3.3 自定义控件基础 之 View的绘制
  10. default、mms、supl、dun、hipri接入点类型的区别
  11. C语言:创建各类三角形图案
  12. 华为交换机密码遗失怎么办?华为交换机密码恢复方法
  13. [转]移动IIS7.5默认inetpub目录
  14. 无人机民航执照、多旋翼、固定翼视距内驾驶员、机长考证试题
  15. android学习资源大整合(持续更新ing)
  16. 简化 Spring 控制器:只须写接口即可
  17. html win10虚拟键盘,Win10系统中内置虚拟键盘过大应该如何解决?
  18. Django数据库字段及参数
  19. 银河麒麟系统共享打印机方法
  20. “煮熟的鸡蛋 可以反生孵化出小鸡”?原谅我,被打败了...

热门文章

  1. [R语言]{实例}车辆车架号VIN码校验函数
  2. 高新技术八大领域详细分类
  3. Spring Cloud中Hystrix的请求合并
  4. A connection attempt failed because the connected party did not properly respond after a period of……
  5. 王治洪个展上野森美术馆隆重开幕
  6. elo匹配算法c语言,匹配算法全面解析:采用国际通用“ELO等级分系统”
  7. 如何在CAD中加载卫星地图并作街道与建筑绘制
  8. 迁移学习——论文集推荐
  9. Docker的名称空间
  10. 计算机图形学常用算法实现9 梁友栋-Barskey裁剪算法