1、在ST官网下载STM32CubeIDE而不是STM32CubeMX,并且STM32CubeIDE是免费的。(STM32CubeIDE不支持中文路径,不然编译会出错)
2、如果你用的是keil开发环境那么 STM32CubeIDE =(STM32CubeMX + Keil)STM32CubeMX只是一个配置代码生成器
3、STM32CubeIDE 软件下载链接:https://www.st.com/zh/development-tools/stm32cubeide.html#tools-software
4、STM32CubeMX 软件下载链接:https://www.st.com/zh/development-tools/stm32cubemx.html
5、下载完成后开始安装,可以修改安装路径,其余全部按照默认即可(本次只安装 STM32CubeIDE )
6、安装完成后打开软件,设置自己的工作环境路径,点击Launch(路径不能有中文,有中文会编译错误)
7、点击 Start new STM32 project 创建一个新的工程项目,输入硬件上对应的芯片型号,点击Next,输入工程名称 BASIC_GPIO,点击Next 弹出对话框,点击Yes。
8、创建完成之后,以下界面就是创建的新工程
9、开始配置工程参数:1)配置SYS调试方式,2)配置系统时钟RCC,3)配置GPIO端口
10、配置调试方式(debug方式根据自己的硬件选择合适的选项,本次使用的是CMSIS DAP debug ,用的是野火指南者开发板选择 JTAG ( 5 pins )
11、配置系统时钟RCC(采用外部晶振8MHz,最高主频为72MHz)
12、配置GPIO端口(本次硬件为野火指南者)以LED灯为例,硬件电路图如下
13、可以对每一个GPIO参数进行修改(在图上对着对应引脚鼠标左右点击可以配置,具体操作自己多点几下就明白了)
14、因为配置了GPIO外设端口,在以下位置修改生成对应的H文件和C文件
15、点击保存会弹出是否生成代码,点击是生成响应的代码,在以下位置可以看到生成代码
16、在位置1处右击鼠标选择 Build Project 编译工程项目程序,可以看到编译后的代码情况
17、现在开始编写代码控制LED灯的状态(本次使用的是HAL库 <<HAL一般指硬件抽象层。硬件抽象层是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植>> )
18、GPIO用的是HAL库,大部分函数都是以HAL开头的,在main程序中编写以下代码,并编译:(编辑代码的时候可以用代码补全功能快捷键: ALT+/ )添加的代码一定要在/* USER CODE BEGIN */和/* USER CODE END */之间,不然保存或者编译会把代码删除掉。
19、编译通过,开始调试程序:通过软件调试来查看Debug_num值的变化,和GPIO寄存器值的变化
20、在位置1(参看上边第15步)右击鼠标->Debug As -> STM32 Cortex-M C/C++ Application
21、由于本次使用的是CMSIS DAP Debug(秉火D普通DAP仿真器)STM32CubeIDE默认不支持DAP的,但是通过ST-Link(OpenOCD间接支持),重点::::::《选择连接到远程GDB服务器端口》
22、配置完成之后,显示没有没有ST-link
22、出现错误显示没有ST-Link,是电脑没有安装相应的驱动
23、安装ST-LinkOCD驱动,下载链接:https://gnutoolchains.com/arm-eabi/openocd/ 下载完成后解压打开文件夹
24、在空白处按住Shift键右击鼠标打开PowerShell窗口,以下命令按回车:./openocd -f interface/cmsis-dap.cfg -f target/stm32f1x.cfg 如果不成功多试几次,在执行前最好把单片机和电脑都连接好。
25、回到STM32CubeIDE中,重新编译程序,点击瓢虫的那个按钮,到以下界面
26、根据LED灯的接口查看对应的GPIO端口的ODR寄存器,可以看到数值的变化,同时观察开发板的LED灯状态。
27、单击全速运行按钮,查看开发板LED灯闪烁状态。
28、由于本次初始化的时候默认设置端口是低电平,也就是灯默认是亮的状态,所以在LED_BLUUE闪烁的时候另外另个灯常亮,如何修改GPIO端口默认输出的是高电平还是低电平,可以在以下位置修改。