第一步:开发环境
本次使用的开发环境是MDK+STM32CubeMX。
1、MDK(编辑器及编译器)
keil是一款使用非常广的开发编译器,用到最多的为C51版本和STM32版本。MDK是就是keil的STM32 版本。网上也可以找到C51和STM32共存的方法。
安装完成MDK之后,还要安装STM32F1支持包,STLinkl驱动。
2、STM32CubeMX
STM32CubeMX是ST公司官方出的STM32 的配置工具。利用这个软件,可以通过图形化配置,生成基础代码。生成的代码使用的是HAL库,或者LL库。
HAL库是ST公司主推的代替标准库的开发库。标准库官方已经不再更新。HAL库一直在更新。
安装步骤:
(1)在ST官网注册账号,然后下载STM32CubeMX安装包,安装。
(2)在ST官网下载最新的库文件,放在STM32CubeMX指定的文件夹下(这一步也可以不做,在STM32CubeMX生成代码时,会自动下载,自动放入指定的路径,只是下载时间比较长)。
第二步:电灯大师是怎样练成的。
1、打开STM32CubeMX。
如图所示,可以选1,通过选择芯片开始一个工程。这次使用的是ST官方的开发板,也可以选择2,通过选择一个开发板开始一个工程。我就选择2。
可以现在1处找到F03RB,在2处选择开发板,双击。
在ST官网上找到开发板的原理图,可以看到,有一个用户按键(蓝色),连接在PC13。
一个LED(绿色),连接在PA5(在开发板背面,可以看到SB42为0欧姆,SB29为NC)。
在STM32Cube MX中,对应位置,软件已经帮我们设置好了。
下面,可以利用定时器,控制LED闪烁。
可以在左边选一个定时器,这次选定时器1(TIM1)。
由于开发板使用内部自带的陶瓷振荡器,最大频率可选64MHz,所以,定时设置预分频63(1MHz,1us),自动重装载值500(500微妙触发一次中断。)
项目存放路径不能有中文,否则不能正常打开,需要到路径内找到工程,,手动打开。
点击生成代码,自动打开工程。
2、keil编程。
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!
自动打开工程之后,找到main.c文件,在里面编程。
(1)、变量声明,用于计数。
(2)、以中断方式,开启定时器1;
(3)、在主循环中,进行判断,如果计数值为0时,PA5(绿色LED)反转。(在中断回调函数中计数,在下一步)
(4)、中断回调函数。每此调用回调函数,count加一。(每500us调用一次回调函数,具体见STM32Cube MX,定时器设置)。
当count>1000时,则时间为500ms,count归零。结合3,PA5反转,LED闪烁。
(5)编译,下载。
下载后,可以看到LED闪烁。
这个实验很简单,在STM32Cube MX的帮助下,只需要8行程序就能实现,就不放视频了。
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!
注意:所有自己写的代码,都要放在 USER CODE BEGIN 和USER CODE END之间,否则如果更改设置,自己写的代码会被覆盖删除!!!