一、实验工具
二、STM32CUBEMX生成代码
-
1.安装完成之后,点击help,下载依赖包
-
2.选择自己的芯片,选上前面的复选框就可以下载了,前面是绿色就代表已经下载好了,我已经下载过一个了,就以上一个版本的举例
-
3.包下载好之后就可以了,后面回到home界面,创建新项目
-
4.在part name那输入自己的芯片,这里以STMC8T6举例,然后在中间回出现一列信息,点击之后再点击start project就行了
-
5.点击System Core,进入里面的SYS,在debug那里选择Serial Wire
-
6.接下来就是配置时钟了,进入上面的rcc,有两个时钟,一个是hse和lse,我们要用是GPIO接口,而这些接口都在APB2里
-
接下来观察时钟架构,APB2总线的时钟由hse控制,同时在这个界面得把PLLCLK右边选上
-
所以我们将hse那里设为Crystal/Ceramic Resonator就行了
-
7.接下来就是点击相应的引脚设置输出寄存器了,就是output那一项,一共选了三个,是PA7,PB9,PC15
-
8.设置还没完,点击System core里的GPIO,把点击引脚名,把输出等级改为high,其实这里不改也没什么,只是程序运行开始时初始状态不一样,mode不用改
-
9.点击project manager,配置好自己的路径和项目名,然后IDE那项改为MDK-ARM
-
10.进入code generate界面,选择生成初始化.c/.h文件,后面点击generate code就行了,这部分结束了
三、keil仿真调试并生成hex文件
我使用的是通过串口下载烧录,所以是生成·hex文件,有仿真器的同学可以通过仿真器直接下载
- 1.进入对应文件夹,再打开MDK-ARM文件夹,通过keil打开刚刚生成的项目
- 2.通过这个目录打开main.c文件,滑倒主函数那一部分
- 3.将下面代码放入主函数中(替代里面的内容)
SystemClock_Config();//系统时钟初始化
MX_GPIO_Init();//gpio初始化
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
HAL_Delay(500);//延时0.5s
}
- 4.烧录运行,串口烧录要断电之后把boot0置0才能正常运行,切记。
四、运行结果
五、小结
- cubemx自动生成代码,使用还是蛮简单的,不过在使用过程中还是会对某些步骤产生疑惑,还是得对原理有一定的了解才能更好的开发。